{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "4cd5b27c",
   "metadata": {},
   "source": [
    "### 一、导入库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e391f7c6",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import warnings\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline\n",
    "warnings.filterwarnings('ignore')\n",
    "plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签\n",
    "plt.rcParams['axes.unicode_minus']=False #用来正常显示负号\n",
    "import missingno"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c5f9b39a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>农产品市场所在省份</th>\n",
       "      <th>市场名称映射值</th>\n",
       "      <th>农产品类别</th>\n",
       "      <th>农产品名称映射值</th>\n",
       "      <th>规格</th>\n",
       "      <th>区域</th>\n",
       "      <th>颜色</th>\n",
       "      <th>单位</th>\n",
       "      <th>最低交易价格</th>\n",
       "      <th>平均交易价格</th>\n",
       "      <th>最高交易价格</th>\n",
       "      <th>数据入库时间</th>\n",
       "      <th>数据发布时间</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>玫瑰花</td>\n",
       "      <td>9FABF2093EC485754BCCA2E513205297</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>红色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>19</td>\n",
       "      <td>22</td>\n",
       "      <td>24</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>玫瑰花</td>\n",
       "      <td>5E0CB63A28D060666E38F5417E1FC534</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>红色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>18</td>\n",
       "      <td>22</td>\n",
       "      <td>24</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>玫瑰花</td>\n",
       "      <td>FC7FE9E4A9E19A0DCA856E211B456728</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>粉色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>16</td>\n",
       "      <td>19</td>\n",
       "      <td>22</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>玫瑰花</td>\n",
       "      <td>C6D05CB73BA09902CCDC27C4B9D49A48</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>黑红色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>16</td>\n",
       "      <td>18</td>\n",
       "      <td>20</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>玫瑰花</td>\n",
       "      <td>427BAA73BD3D384FF704D4E13BF01EB5</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>粉色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>20</td>\n",
       "      <td>24</td>\n",
       "      <td>26</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2103043</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>3E0E45ECDD52843D41C487FBB7BEF094</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2103044</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>552CD2C91A20DA48CD8FE41F7F02AFE3</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2103045</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>1C5F3F6AE7E0232791D9170A8125DD4D</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2103046</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>B6BEB81F246F19A5F0CF483DDD008DD2</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2103047</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>74C9227D95C45856683C457BBCD04D90</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2103048 rows × 13 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        农产品市场所在省份                           市场名称映射值 农产品类别  \\\n",
       "0              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
       "1              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
       "2              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
       "3              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
       "4              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
       "...           ...                               ...   ...   \n",
       "2103043        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "2103044        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "2103045        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "2103046        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "2103047        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "\n",
       "                                 农产品名称映射值  规格  区域   颜色     单位 最低交易价格 平均交易价格  \\\n",
       "0        9FABF2093EC485754BCCA2E513205297  \\N  \\N   红色  20支/扎     19     22   \n",
       "1        5E0CB63A28D060666E38F5417E1FC534  \\N  \\N   红色  20支/扎     18     22   \n",
       "2        FC7FE9E4A9E19A0DCA856E211B456728  \\N  \\N   粉色  20支/扎     16     19   \n",
       "3        C6D05CB73BA09902CCDC27C4B9D49A48  \\N  \\N  黑红色  20支/扎     16     18   \n",
       "4        427BAA73BD3D384FF704D4E13BF01EB5  \\N  \\N   粉色  20支/扎     20     24   \n",
       "...                                   ...  ..  ..  ...    ...    ...    ...   \n",
       "2103043  3E0E45ECDD52843D41C487FBB7BEF094  \\N  \\N   \\N     \\N    1.0    1.0   \n",
       "2103044  552CD2C91A20DA48CD8FE41F7F02AFE3  \\N  \\N   \\N     \\N    3.0    3.0   \n",
       "2103045  1C5F3F6AE7E0232791D9170A8125DD4D  \\N  \\N   \\N     \\N    4.0    4.0   \n",
       "2103046  B6BEB81F246F19A5F0CF483DDD008DD2  \\N  \\N   \\N     \\N    3.6    3.6   \n",
       "2103047  74C9227D95C45856683C457BBCD04D90  \\N  \\N   \\N     \\N    2.2    2.2   \n",
       "\n",
       "        最高交易价格               数据入库时间      数据发布时间  \n",
       "0           24  2016-07-18 15:05:19  2015-11-27  \n",
       "1           24  2016-07-18 15:05:19  2015-11-27  \n",
       "2           22  2016-07-18 15:05:19  2015-11-27  \n",
       "3           20  2016-07-18 15:05:19  2015-11-27  \n",
       "4           26  2016-07-18 15:05:19  2015-11-27  \n",
       "...        ...                  ...         ...  \n",
       "2103043    1.0  2016-07-18 15:34:18  2010-12-01  \n",
       "2103044    3.0  2016-07-18 15:34:18  2010-12-01  \n",
       "2103045    4.0  2016-07-18 15:34:18  2010-12-01  \n",
       "2103046    3.6  2016-07-18 15:34:18  2010-12-01  \n",
       "2103047    2.2  2016-07-18 15:34:18  2010-12-01  \n",
       "\n",
       "[2103048 rows x 13 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=pd.read_csv(r'F:\\大三上\\数据分析与数据挖掘\\06\\小课\\数据源\\farming2.csv')\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2a8ed522",
   "metadata": {},
   "source": [
    "### 二、数据探索"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "09a1587c",
   "metadata": {},
   "source": [
    "#### 类型转型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "9662af3d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 转换交易价格列为数值类型\n",
    "df['最低交易价格'] = pd.to_numeric(df['最低交易价格'], errors='coerce')\n",
    "df['平均交易价格'] = pd.to_numeric(df['平均交易价格'], errors='coerce')\n",
    "df['最高交易价格'] = pd.to_numeric(df['最高交易价格'], errors='coerce')\n",
    "\n",
    "# 转换日期列\n",
    "df['数据入库时间'] = pd.to_datetime(df['数据入库时间'], errors='coerce')\n",
    "df['数据发布时间'] = pd.to_datetime(df['数据发布时间'], errors='coerce')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3fc8ba9",
   "metadata": {},
   "source": [
    "#### 查看数据分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e669366b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>最低交易价格</th>\n",
       "      <th>平均交易价格</th>\n",
       "      <th>最高交易价格</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>2.102799e+06</td>\n",
       "      <td>2.102801e+06</td>\n",
       "      <td>2.102799e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>5.395585e+00</td>\n",
       "      <td>7.594563e+00</td>\n",
       "      <td>6.497695e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.349608e+01</td>\n",
       "      <td>1.627666e+01</td>\n",
       "      <td>1.545880e+01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>6.000000e-01</td>\n",
       "      <td>2.100000e+00</td>\n",
       "      <td>1.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>2.400000e+00</td>\n",
       "      <td>3.800000e+00</td>\n",
       "      <td>3.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>5.200000e+00</td>\n",
       "      <td>7.200000e+00</td>\n",
       "      <td>6.500000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>5.400000e+02</td>\n",
       "      <td>7.200000e+02</td>\n",
       "      <td>8.000000e+02</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             最低交易价格        平均交易价格        最高交易价格\n",
       "count  2.102799e+06  2.102801e+06  2.102799e+06\n",
       "mean   5.395585e+00  7.594563e+00  6.497695e+00\n",
       "std    1.349608e+01  1.627666e+01  1.545880e+01\n",
       "min    0.000000e+00  0.000000e+00  0.000000e+00\n",
       "25%    6.000000e-01  2.100000e+00  1.000000e+00\n",
       "50%    2.400000e+00  3.800000e+00  3.000000e+00\n",
       "75%    5.200000e+00  7.200000e+00  6.500000e+00\n",
       "max    5.400000e+02  7.200000e+02  8.000000e+02"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "71f7e1ba",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 2103048 entries, 0 to 2103047\n",
      "Data columns (total 13 columns):\n",
      " #   Column     Dtype         \n",
      "---  ------     -----         \n",
      " 0   农产品市场所在省份  object        \n",
      " 1   市场名称映射值    object        \n",
      " 2   农产品类别      object        \n",
      " 3   农产品名称映射值   object        \n",
      " 4   规格         object        \n",
      " 5   区域         object        \n",
      " 6   颜色         object        \n",
      " 7   单位         object        \n",
      " 8   最低交易价格     float64       \n",
      " 9   平均交易价格     float64       \n",
      " 10  最高交易价格     float64       \n",
      " 11  数据入库时间     datetime64[ns]\n",
      " 12  数据发布时间     datetime64[ns]\n",
      "dtypes: datetime64[ns](2), float64(3), object(8)\n",
      "memory usage: 208.6+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "91a76498",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>最低交易价格</th>\n",
       "      <th>平均交易价格</th>\n",
       "      <th>最高交易价格</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>最低交易价格</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.606843</td>\n",
       "      <td>0.976821</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>平均交易价格</th>\n",
       "      <td>0.606843</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.614057</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>最高交易价格</th>\n",
       "      <td>0.976821</td>\n",
       "      <td>0.614057</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          最低交易价格    平均交易价格    最高交易价格\n",
       "最低交易价格  1.000000  0.606843  0.976821\n",
       "平均交易价格  0.606843  1.000000  0.614057\n",
       "最高交易价格  0.976821  0.614057  1.000000"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#斯皮尔曼相关系数计算\n",
    "df.corr(method='spearman')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5577575f",
   "metadata": {},
   "source": [
    "#### 相关性分析"
   ]
  },
  {
   "cell_type": "raw",
   "id": "f3673eec",
   "metadata": {},
   "source": [
    "sns.pairplot(df)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf70d28b",
   "metadata": {},
   "source": [
    "### 三、 数据预处理"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6abe7f56",
   "metadata": {},
   "source": [
    "#####  查看缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9c7cfdc1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAACE4AAAQJCAYAAADSe9+fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd5gX1f0/7PfsLr2JgA0BC9gCFuyFoII9ihoLYEPFhonG2KJiiYpdE1sUaxSMscfys6CxIxYsXzQ2mogFBKRJZ/c8f/iwcQPookOd+74uLjZz5nP2zOaVuSbMa2eylFIKAAAAAAAAAIACKlnaCwAAAAAAAAAAWFoUJwAAAAAAAACAwlKcAAAAAAAAAAAKS3ECAAAAAAAAACgsxQkAAAAAAAAAoLAUJwAAAAAAAACAwlKcAAAAAAAAAAAKS3ECAAAAAAAAACgsxQkAAAAAAAAAoLAUJwAAAAAAAACAwlKcAAAAAAAAAAAKS3ECloKU0tJeAisYmSJvMkXeZIq8yRR5kynyJlPkTaYAAH4Z11PkTaZWLIoTsAR89913MXny5Pj0008jIiLLsqW8IpZ3MkXeZIq8yRR5kynyJlPkTabIm0yxOFRUVMS0adOW9jIAFsp5ijy5niJvMrViU5yAxez999+Po48+OrbZZpvYZptt4vDDD4+PPvpoaS+L5ZhMkTeZIm8yRd5kirzJFHmTKfImU+Tto48+inPPPTd222236Ny5cxx77LHx2muvxezZs5f20lhODR8+PD744IOlvQxWIM5T5M31FHmTqRVf2dJeAKzIBg8eHHvuuWdMnz49ttpqq6hVq1b0798/vv3223jkkUeiRo0aS3uJLGdkirzJFHmTKfImU+RNpsibTJE3mSJvb775Zuyxxx4xbdq0WGONNWLKlCnxxhtvxMCBA+Occ86Jgw46KMrK/DMx1ZNSilmzZkXnzp1j0003jQsuuCA22WSTpb0slnPOU+TN9RR5k6li8MQJWEw+//zzOOSQQ2KdddaJu+++O55//vl4/PHH4+ijj44nn3wy7rjjjqW9RJYzMkXeZIq8yRR5kynyJlPkTabIm0yRt9GjR8cRRxwRbdq0iXvuuSdGjBgRgwYNivPOOy8+//zzuOGGG2LChAlLe5ksR7Isi9q1a8eqq64ajz76aPzlL3+JIUOGLO1lsRxzniJvrqfIm0wVh+IELCbvvfdefPnll9GrV6/Yf//9IyKiRYsWcfDBB0dERGlp6XyfqaioWKJrZPkiU+RNpsibTJE3mSJvMkXeZIq8yRR5SSlFRMRrr70Wo0aNimOPPTZ++9vfRkREmzZt4thjj4199tknXn/99ejbt+/SXCrLqSZNmkRERL9+/eLCCy+M999/fymviOWN8xSLi+sp8iZTxeHZRrCYjBkzJqZPnx6dO3eOiIjp06dH3bp1o27durHOOuvESy+9FCNHjozy8vLYfvvtY6eddor69etHRUVFlJToNDE/mSJvMkXeZIq8yRR5kynyJlPkTabIS5ZlERHx1ltvxezZs2OvvfaKiIjy8vIoKSmJNdZYIw499NC4995745lnnonf/e530bhx48rPwcLMO9+MGzcudtppp9hyyy3jqquuiizL4rzzzot27dot7SWynHCeYnFxPUXeZKo4FCcgZymlyLIsVllllYiIuO222+K0006LunXrRkTEzTffHCNGjIgRI0ZElmWRUopatWrFkUceGZdffnk0aNBgaS6fZZBMkTeZIm8yRd5kirzJFHmTKfImUywuJSUlUVFRER9//HGsuuqqVf4Bv3bt2hER8frrr8fQoUNj6623XppLZTlRUlISs2fPjnHjxsWWW24ZvXv3joqKirjmmmsiIpQnWGTOU+TF9RR5k6kCSkAuZs6cOd+2Dh06pNLS0rT77runM888M+22224py7K0+uqrp4cffji98sor6YUXXkibbLJJyrIsXXbZZWnu3LlLYfUsi2SKvMkUeZMp8iZT5E2myJtMkTeZYnGpqKhIKaX05JNPpizLUteuXauMT548OZ177rmpRo0aKcuydNFFF6WUkixRxbwcpZRSeXl5lbE//vGP6dJLL00ppfTZZ5+l008/PZWWlqYDDjggDRkyZImuk+WT8xR5cT1F3mSquBQnIAf/93//l3bZZZf0/vvvp5T+e9H37bffpt/85jepTp06qU2bNinLstS4ceP03nvvVfn8O++8kxo3bpx22mmnNGfOnCW+fpY9MkXeZIq8yRR5kynyJlPkTabIm0yRt7lz56YZM2akiRMnpunTp6eUUvrqq69Shw4dUpZlqVu3bun5559PAwcOTBdddFFq0qRJWmuttVKtWrXSHnvssZRXz/Ji3k2g0aNHp++++65y++jRo5Un+EnOU+TN9RR5k6liU5yAHPTv3z9lWZYOOuig9J///Ge+8c8++yw99dRTqbS0NJ155pkppVTlhPnll1+mli1bpizL0uDBg6u0uSkmmSJvMkXeZIq8yRR5kynyJlPkTabI05AhQ9LRRx+dNthgg7T66qunjTbaKD3wwAMppZQ+/vjjtNlmm6Usy1KWZalmzZopy7LUuXPn9Nxzz6U2bdqkxo0bpxEjRizlo2BZ8u6776Zjjjkm7bzzzmn//fdPV111Vfrmm2/m2++HT6JQnuDHOE+xOLieIm8yVWxlS/tVIbAi2GCDDSIi4oEHHohp06bFlVdeGRtuuGHleKtWrWLy5MlRUVER3333XURElJWVxZw5c6JGjRrRoEGDKCsri9atW0eLFi0iy7KlchwsO2SKvMkUeZMp8iZT5E2myJtMkTeZIi9vvfVW7LLLLlFaWhobbbRRNG3aNAYOHBhHH310fPbZZ3HaaafFPffcE//4xz/ilVdeidq1a8fmm28ep5xySjRt2jSOPPLIOOecc+LDDz+Mtddee2kfDsuAIUOGxE477RSNGzeOjTbaKD777LN48cUX4y9/+Utcd911seuuu0b9+vUjIqKkpKTyc2uuuWacdNJJERFxzTXXRETE+eefH23btl3yB8EyxXmKxcX1FHmTqYJb2s0NWN6Vl5enL7/8Mq255ppppZVWSvXr10/bbbdd+uijj6rsN3Xq1NS6deu0zTbbpDFjxlQZO/zww1OWZWmvvfZKkyZNWpLLZxkkU+RNpsibTJE3mSJvMkXeZIq8yRR5+frrr9OWW26ZNt988/TEE0+klL7P180335zWWGONtPLKK6e33norpfT9I/LnzJmTZs+eXWWORx55JGVZlnr37l35eYqpoqIizZgxI3Xp0iWtvvrq6emnn64ce/TRR9Puu++eatWqlS644II0atSohc4z78kTtWvXTrvuuusCf2OX4nCeYnFxPUXeZArFCcjJzjvvnNZee+101113pZVXXjl17Nixysl07ty56cILL0xZlqWdd9453Xvvvemtt95K3bt3T1mWpdVXXz0NGzZsKR4ByxqZIm8yRd5kirzJFHmTKfImU+RNpvilnn322dSwYcN0zTXXzDd21llnpSzL0p577pm+++67+cbnzp2bUkpp1qxZab311kvbb7+9d3GTpk+fnlq1apU6dOgw39iYMWPS8ccfn7IsS7///e/T0KFDFzrP6NGjU69evVLTpk3T6NGjF+eSWcY5T7G4uZ4ibzJVXIoT8AuVl5en8vLydNRRR6WVVlopDR06NN1yyy2pUaNGqWPHjlUa1R9//HE6/fTTU9OmTVOWZamkpCRlWZY23HDD9PHHHy/Fo2BZIlPkTabIm0yRN5kibzJF3mSKvMkUebn44otTlmXp5ZdfTil9n615NxqHDx+emjVrltq2bTvfb0P+r6233jqtscYa6dtvv13sa2bZNnny5NSsWbO0yy67VG774W/3z5kzJ/3xj3+sLE98+eWXC53ryy+/TGPHjl2s62XZ5zzF4uJ6irzJFGVL+1UhsLyb9x6/jh07xp133hkTJkyIww8/PEpLS+O0006LE088Ma655pp45ZVXYvz48dGjR4/Yfvvt47777ouSkpLYZJNNonv37tG8efOlfCQsK2SKvMkUeZMp8iZT5E2myJtMkTeZ4pcYPXp0rL766lFWVlaZgVGjRkWHDh2ioqIiysq+/yff8ePHx+TJk2P8+PFx//33x+9///v55qqoqIiSkpLo3bt3tG7dOho3brxEj4VlS0VFRZSWlkbz5s3jueeei+eeey46d+5cec6K+P497ldccUXMnDkzbrrppmjRokWcfvrplVn6oTXWWGNJHwLLCOcplgTXU+RNpvDECaiGioqKyr8X9v60AQMGpCzL0t13351SSmnChAmpX79+aaWVVkrrrbdeqlOnTlpvvfWW2JpZtskUeZMp8iZT5E2myJtMkTeZIm8yxeLw5ptvptVXXz0de+yxqby8PA0cODDVq1cvrbPOOlUeCT1lypR05ZVXprp166aysrJ04oknppT+m0v4MX379k1ZlqVjjjkmjRs3boH7jBo1Kv36179OjRs39jhyqnCeIk+up8ibTPFjSn66WgHMmjUrIiLKy8urNKcrKioqv27Xrl00a9YsXnzxxYiIWHnllWPXXXeNffbZJ4YNGxa1atWKBx54oPJzKaWIiMq/KRaZIm8yRd5kirzJFHmTKfImU+RNpsjboEGDokOHDjFmzJh46623IqUU2223XRxyyCExcuTI2GWXXaJ///7x4IMPxiWXXBIXX3xxNG/ePOrUqRMPPvhgfPPNN5Fl2dI+DJYh48aNi7fffjsGDBgQ77zzTuX2PffcM/bee+/4+9//Hg888ECVc868r1u0aBH77rtvTJo0Ka666qoqYxSX8xR5cz1F3mSKH6M4AT/h7bffjoMPPjjatWsXbdu2jVNOOSWefPLJiIgqJ9UmTZrEaqutFqNGjYqIiJkzZ8YTTzwRjz32WLRo0SIiIk4//fR47733oqSkpPIC0IVg8cgUeZMp8iZT5E2myJtMkTeZIm8yRd5ef/312HnnnaN9+/bxu9/9Lt5777149NFHIyKib9++cdhhh8Vnn30Whx9+eBx00EFx+eWXxzbbbBOPPvpo7LPPPjFu3LgYM2ZMRPhHfb737rvvxt577x1bb7117L777rHFFlvEpZdeGhERa665Zvz+97+PTTbZJP74xz/GP//5z8rPZVkW5eXlkWVZ/Pa3v42VVlopPv/888oxist5iry5niJvMsVPWkJPtoDl0vvvv5+aNGmS2rZtm4444oh07LHHpubNm6e6deumU089NU2bNq3K/l27dk3rr79++uyzz9JNN92UVlpppbTFFlukCRMmpAceeCBlWZb23HPPNGvWrKV0RCxtMkXeZIq8yRR5kynyJlPkTabIm0yRt0GDBqXatWunLbfcMr344ovpvffeS/Xq1UsXX3xxlf369u2bTjrppHTsscema665pjJrf//731OWZemCCy5IKXkMPim9/fbbqUmTJql169bpD3/4Q7r22mtT8+bNU5ZlqX///pX7Pfroo2mzzTZLtWvXTtdff3366quvqswzfPjwVL9+/bTPPvss6UNgGeM8Rd5cT5E3maI6FCdgIcrLy9Oxxx6bGjVqlJ544onK7e+880465ZRTUllZWdp///3Thx9+WDl29dVXp1q1aqWzzz47rbrqqmnzzTdPs2fPTimlNH78+NSvX7/08ccfL/FjYdkgU+RNpsibTJE3mSJvMkXeZIq8yRR5++HNyGeffbZye6dOndKvfvWrNHHixJ+cY9iwYalRo0apa9eui3GlLC/GjRuXOnbsmNq1a5f+3//7f5Xb573PvWvXrmnGjBmV25966qnUqVOnVFpamg466KD00EMPpQkTJqQxY8ak7t27pyzL0hVXXJFScrO7qJynyJvrKfImU1SX4gQsxJw5c9IWW2yRNthgg8qTYXl5eUoppQkTJqSbb7451a9fP3Xu3Dm98cYbKaWUnnjiiZRlWcqyLG2++eZpzpw5KaVU+Xn/56HYZIq8yRR5kynyJlPkTabIm0yRN5kiT2+99VbKsixttdVW6bnnnqsydvbZZ6caNWqk119/PaWUKnPzQxUVFam8vDzNmjUr7bTTTqlp06ZpxIgRS2TtLLs+/vjj1Lhx43T++edXbps7d24qLy9Pa6+9djrppJPSnDlz0pQpUyrHhw0blk477bTKc1WDBg1SzZo1U5ZlaY899khffvnlUjgSlgXOUywOrqfIm0xRXYoTsBDl5eVpm222Sa1atUrjxo1LKVU9Ec6YMSPdc889qUGDBmmXXXZJo0aNSjNnzkzt2rVLbdu2rTyJLuiCkGKSKfImU+RNpsibTJE3mSJvMkXeZIq8zJo1K/Xu3Tvtsssu6ZlnnqncPnfu3JRSSqNGjUp169ZNJ5xwQrXmO/HEE1OTJk3SN998s1jWy/Lj9ddfT3Xr1k033HBDle3jx49P66yzTlpvvfVShw4d0jrrrJOOOeaY9Oqrr1aex1555ZV00UUXpW7duqVevXql+++/P40dO3ZpHAbLAOcpFhfXU+RNpqguxQn4EQceeGDKsizdeuutlRd8PzRjxox08803p5o1a6bDDjsspZTSxIkTnURZKJkibzJF3mSKvMkUeZMp8iZT5E2myMvXX3+dhg0bVvmff/gP/FOmTEmdOnVKLVu2TJ988slC55j325SvvvpqGj58+OJbLMuNKVOmpHXWWSdtvfXW6e23306TJ09O06dPT0cddVTKsiyVlZWl9u3bp+bNm6eaNWumTTfdND366KN+s5YFcp5icXE9Rd5kiupQnIC08EfqvPzyy2nllVdOO+20U2V7+n/3HTNmTDr00ENTlmXp7rvvrtw+74KPYpIp8iZT5E2myJtMkTeZIm8yRd5kiiVhXiYWlLcHH3wwZVmW7rzzzoXuAwty7733ppVXXjk1adIkbbbZZmnbbbdNWZalVq1apVdffTVNnTo1jRo1Kl199dWpXr16aZ999ql8NPncuXMrsyZzpOQ8xS/jeoq8yRS/REkAMWvWrJg8eXI8//zzMXz48JgzZ05ERLRp0ya6desWL774YvzpT3+KiIgsyyKlVPnZVVddNY4++uiIiPjXv/4VEREVFRVRUuJ/XkUmU+RNpsibTJE3mSJvMkXeZIq8yRR5GzVqVDz77LNx5513xmuvvRazZ8+OkpKSmDt3bmRZNt/+W2yxRay33npx/vnnx8iRIxe4D8X2v5maNWtWRETssssu0b9//9hoo42iRYsW8eabb0ZExIMPPhjbb7991KtXL1q2bBndu3ePzTffPB5//PF47rnnIiKitLS0MmsyVzzOU+TN9RR5kyl+kaXV2IBlxZdffpnOPffc1Lp165RlWWratGnq2rVrmjZtWkoppQ8//DB16dIlZVmWTjzxxCqfLS8vT+Xl5WnGjBmpZcuWae21104zZszQnC04mSJvMkXeZIq8yRR5kynyJlPkTabI2+DBg1PLli1TlmUpy7JUr1699Nvf/jZNnz49pbTw33Q8//zzU5Zl6bbbbksppQU+eppiWlCm9t9//8rzVErf52rixIlpk002SVtttVVK6ftHkVdUVFRm6ZhjjklZlqV77rlnqRwHyw7nKfLmeoq8yRS/lOIEhTZx4sR00kknpQYNGqTddtst9enTJ2255ZYpy7J0zDHHVD6C7v3330/77LNPyrIsHX744emzzz6r8j6jmTNnptVWWy3ttNNOS+tQWEbIFHmTKfImU+RNpsibTJE3mSJvMkXehgwZkho2bJhKSkrS4Ycfns4888y03nrrpSzLUrdu3dKsWbPm+8y8G5Tjx49PG264Ydp0000r9/M4aRYlU3Pnzk3bbrttWn/99Su3zZgxo/LrHXbYIdWsWTM9/fTTS/QYWLY4T5E311PkTabIg+IEhfbaa6+llVdeuUqzrKKiIq233nqpZcuW6csvv6zc/uGHH6ajjz461ahRI22xxRbpwgsvTO+880568803U9euXVOWZemss85K5eXlGmgFJlPkTabIm0yRN5kibzJF3mSKvMkUeZo6dWrab7/9UpZl6a9//Wvl9kmTJqX11lsvNWjQIL322msppQW/s3vWrFnpjDPOSFmWpd/97ndLbN0suxYlU3PmzElz5sxJJ598csqyLF166aVV5urZs2fKsixtueWW6Ztvvlmix8Gyw3mKxcH1FHmTKfKgOEGhnXbaaalhw4aVbbLJkyenlFK69NJLU6NGjdL777+fUvrvBd+oUaPS7bffntq0aZOyLEs1atRIWZalmjVrpt/85jfpiy++WDoHwjJDpsibTJE3mSJvMkXeZIq8yRR5kynyNHXq1LThhhum9u3bV26b99j7O++8M2VZli688MIfneOrr75Kbdq0STVq1PBUAH5Wpt5888201lprpSzL0iGHHJIuvvjitNtuu6Usy9Jqq62WPv300yV6DCxbnKdYHFxPkTeZIg9lAQVWt27dKC0tjTFjxsSaa64ZDRs2jIiIb775JqZMmRLPPvts3HvvvdGwYcM47rjjomXLlnHUUUfFwQcfHPfcc0+MGTMmZs+eHR07doz27dtHkyZNlvIRsbTJFHmTKfImU+RNpsibTJE3mSJvMkVeUkrx9ddfx+jRo2PbbbeNiIg5c+ZEnTp1IiKiffv2UaNGjXjllVciIqK8vDxKS0urzFFeXh6rr756nHnmmdG7d+/YYIMNluxBsExZ1EzNnTs3ysrKYsstt4x77rknzjzzzHj44Ydj5syZUadOndhmm23irrvuijZt2iy1Y2Lpcp5icXE9Rd5kilws5eIGLFV9+/ZNWZalIUOGVG776KOP0kYbbZSyLEsNGzZMWZalLMvSr371q/T5558vxdWyPJAp8iZT5E2myJtMkTeZIm8yRd5kirztvPPOac0111zg2Pbbb59WXXXVNGXKlB+d48svv0xjxoxZHMtjObSomZr327effvppeuqpp9Kll16ann/++TR27Nglsl6Wfc5T5M31FHmTKfJQsrSLG7A0lJeXR0TEVlttFeecc040atSocmzMmDHxxRdfxK233hr//ve/48svv4yjjz46Pvzwwzj44INj1qxZEfF923aeH35NMckUeZMp8iZT5E2myJtMkTeZIm8yRd4qKioiIqJdu3ZxyCGHLHCfVq1axYQJE2L69OlVPjPPvBytscYaseqqqy7G1bI8+LmZyrIsIiLatGkTu+++e/zpT3+KnXbaKVZZZZUls3CWWc5T5M31FHmTKfKUJQmgAMaNGxcTJkyIWbNmRYsWLWLllVeuHPvfx4dNnz49Jk6cGM2bN4+UUmRZFrNmzYp99903nnnmmXjnnXdi0003XQpHwbJEpsibTJE3mSJvMkXeZIq8yRR5kynytrBMzcvMD7+e93fv3r3jkksuiZdeeik6dOhQOdcrr7wSa6yxRqy77rpL5VhYNuSZqZdffjmaN28uUwXnPEXeXE+RN5licfLECVZ4b775ZnTq1Cm22Wab2GmnnaJt27Zx7rnnxuuvvx4REaWlpVUaZHXr1o3mzZtHRESWZTFz5syoVatWdO/ePSK+fx8SxSZT5E2myJtMkTeZIm8yRd5kirzJFHlbWKYGDRpUeTOyvLy88ut5f8+74ThhwoTKuZ5++uno1q1bdO3atfI3JSmevDPVvXt3mSo45yny5nqKvMkUi5viBCu04cOHx3777Rc1atSIP//5z3HLLbfEHnvsEX/729+iW7du8c9//jMi/nuRF/HfR4mllGL27NlRu3btiIh4++23Y+WVV4527dot+QNhmSFT5E2myJtMkTeZIm8yRd5kirzJFHn7sUx17969MlM//A3JeerUqRMREd9++21ERDzxxBNx5plnxvTp0+OWW26JWrVqLbkDYZkhU+RNpsib6ynyJlMsEQlWQBUVFSmllG655ZaUZVm6/fbbq4w/9NBD6de//nXKsixde+21ldvLy8srv545c2bl1//85z/ThhtumPbYY480efLkxbx6lkUyRd5kirzJFHmTKfImU+RNpsibTJG3n5upH3ryySdTlmWpd+/e6d///nf61a9+lRo2bJiGDBmy2NfPskemyJtMkTfXU+RNpliSFCdYoZ155pkpy7L01VdfpZSqnhzfeOONtO+++6Ysy9Jll11W5XPnn39+qlu3btp1113Tdtttl+rVq5dWW2219NFHHy3R9bPskSnyJlPkTabIm0yRN5kibzJF3mSKvP2cTM27SfDqq6+mGjVqpM6dO6dtt93WzUhSSjJF/mSKvLmeIm8yxZLgVR2s0EpKvo/4v//974iIqFmzZuX7jbbaaqu44IILYt99942zzjorbr311oj4/pE9zZo1ix133DHefvvtmD59ehx44IHxyiuvxAYbbLB0DoRlhkyRN5kibzJF3mSKvMkUeZMp8iZT5O3nZGreY6YrKiqioqIi/v3vf8dHH30UL7/8ssdKI1PkTqbIm+sp8iZTLBFLsKQBS9xLL72UatasmY488sjKbeXl5ZVt2JS+b6K1b98+ZVmWnn766SqfHzlyZJo5c2aaMWPGElszyzaZIm8yRd5kirzJFHmTKfImU+RNpsjbomZqwIABldu//vrr1LZt29SoUaP04YcfLtF1s+ySKfImU+TN9RR5kymWBMUJVig/fGdRSimNGjUq7bDDDinLsnTzzTdXbq+oqKhyMu3Xr1/Ksix169YtTZo0qXKeH+5DMckUeZMp8iZT5E2myJtMkTeZIm8yRd7yyNSUKVMq9+nbt28aNmzYklk8yySZIm8yRd5cT5E3mWJpUJxghTBu3LjKr//3ZPrkk0+mhg0bpjp16qT777+/yn4/PFHuuOOOabXVVkujR49e/AtmmSdT5E2myJtMkTeZIm8yRd5kirzJFHmTKfImU+RNpsibTJE3mWJpKlnarwqBX2r48OGxyy67VL6zqKSkJCoqKirfbbTHHnvETTfdFLNnz45TTjklHnjggcr9siyLmTNnRkREs2bNYuzYsTFy5MilcyAsM2SKvMkUeZMp8iZT5E2myJtMkTeZIm8yRd5kirzJFHmTKfImUyx1S6WuATkaPHhwqlmzZmrdunW66667Krf/b8Ps7rvvTg0bNkx169ZNf/nLX+abZ5tttknrrrtuGjNmzJJYNsswmSJvMkXeZIq8yRR5kynyJlPkTabIm0yRN5kibzJF3mSKvMkUS5viBMu1ioqKNGLEiFS/fv1UWlqa1lxzzXTPPfdUjpeXl1d5lM+//vWv1K5du5RlWdp5553TWWedlW655Za0xx57pCzL0hFHHJGmTZu2NA6FZYRMkTeZIm8yRd5kirzJFHmTKfImU+RNpsibTJE3mSJvMkXeZIplgeIEy72hQ4empk2bpm7duqUsy1KzZs3SP/7xj8rx/22ivfPOO+nPf/5zat68ecqyLGVZllZfffV06KGHps8//3xpHALLGJkibzJF3mSKvMkUeZMp8iZT5E2myJtMkTeZIm8yRd5kirzJFEtbltL//2IYWE598MEHsfHGG8e7774bo0aNin333TeaNWsWf/3rX6Nbt24REVFRURFZlkWWZZWf+/bbb+Pjjz+OqVOnRvv27aN27drRoEGDpXUYLENkirzJFHmTKfImU+RNpsibTJE3mSJvMkXeZIq8yRR5kynyJlMsdUu7uQG/1HPPPZdWWmml9OGHH6aUUrr//vtTlmVplVVWma+JNs/cuXOX+DpZfsgUeZMp8iZT5E2myJtMkTeZIm8yRd5kirzJFHmTKfImU+RNpljaPHGC5cawYcPixRdfjOHDh8eWW24Zm2++ebRq1SoiIu6+++7YZ599YqWVVoqIiAcffDAOOuigBTbRSkpKltYhsIyRKfImU+RNpsibTJE3mSJvMkXeZIq8yRR5kynyJlPkTabIm0yxzFrazQ2ojrfeeiutttpqle8oyrIs7b333unpp5+ust+cOXMqv37ggQd+solGcckUeZMp8iZT5E2myJtMkTeZIm8yRd5kirzJFHmTKfImU+RNpliWKU6wzPvggw9S06ZNU7169dLJJ5+crrnmmrTvvvumsrKytP/++6cxY8ZU2b+ioqLyaydTFkSmyJtMkTeZIm8yRd5kirzJFHmTKfImU+RNpsibTJE3mSJvMsWyTnGCZVZFRUWaPXt26tatW8qyLF111VWVY8OGDUu//e1vU5Zl6V//+tcCPzvPvJNp8+bN05133rkkls4ySqbIm0yRN5kibzJF3mSKvMkUeZMp8iZT5E2myJtMkTeZIm8yxfJCcYJl2uzZs9NGG22U2rVrl+bOnVtl7J577klZlqWDDz44zZ07d75W2Q9Ppg899FDKsiy1adMmTZ48eYmsnWWTTJE3mSJvMkXeZIq8yRR5kynyJlPkTabIm0yRN5kibzJF3mSK5UGWUkoBy6g5c+ZE27Zto0GDBvHaa69FzZo1I6UUWZbF3Llzo127dlG7du14/fXXo1atWvN9ft6+ERGPPfZYrLvuuvGrX/1qSR8GyxCZIm8yRd5kirzJFHmTKfImU+RNpsibTJE3mSJvMkXeZIq8yRTLg5KlvQBYmJRSlJaWRosWLWLkyJExZsyYiIjIsiwqKiqirKwsVl999RgxYkSMHj16gXNkWRbzukH77LOPk2jByRR5kynyJlPkTabIm0yRN5kibzJF3mSKvMkUeZMp8iZT5E2mWF4oTrDMyrIsSkpKolevXnHiiSdGy5Yt59tniy22iKlTp8bXX38dEVF50vwhD1VhHpkibzJF3mSKvMkUeZMp8iZT5E2myJtMkTeZIm8yRd5kirzJFMuLsqW9APgp+++/f+y///4R8d9H8ZSUfN/5WXvttSMiYvr06RERlY/peeGFF+Krr76KQw45pHJfmEemyJtMkTeZIm8yRd5kirzJFHmTKfImU+RNpsibTJE3mSJvMsWyTsJYrsw7Uc5rla2xxhoRETF06NDKfZ588sk4+eST48ILL4wJEyYs+UWyXJEp8iZT5E2myJtMkTeZIm8yRd5kirzJFHmTKfImU+RNpsibTLEs8sQJlkvzTqjrrLNORPy3gfbkk0/G2WefHSNHjozXXnstmjRpstTWyPJFpsibTJE3mSJvMkXeZIq8yRR5kynyJlPkTabIm0yRN5kibzLFskRxguVaaWlpRERMmDAhnn322TjjjDNi9OjR8dprr0W7du2W8upYHskUeZMp8iZT5E2myJtMkTeZIm8yRd5kirzJFHmTKfImU+RNplgWZGneM1BgOTR06NBYf/31Y/3114+ysrIYNWpUDBw40EmUn02myJtMkTeZIm8yRd5kirzJFHmTKfImU+RNpsibTJE3mSJvMsWywBMnWK6ttNJKsdZaa8Unn3wSjRo1ildffdVJlF9EpsibTJE3mSJvMkXeZIq8yRR5kynyJlPkTabIm0yRN5kibzLFskBxguVajRo1Yvbs2RER8dprr8WGG264lFfE8k6myJtMkTeZIm8yRd5kirzJFHmTKfImU+RNpsibTJE3mSJvMsWywKs6WO59/PHHkWVZrL/++kt7KawgZIq8yRR5kynyJlPkTabIm0yRN5kibzJF3mSKvMkUeZMp8iZTLG2KEwAAAAAAAABAYZUs7QUAAAAAAAAAACwtihMAAAAAAAAAQGEpTgAAAAAAAAAAhbVCFiemTZsW7du3jx49euQ256OPPhpbb7111K9fP1q1ahVXX311bnMDAAAAAAAAQHUNHTo0DjjggFhllVWiRo0a0bRp0zjhhBNiypQpC9y/vLw89txzz9hxxx1/dN5FuS8+fvz4uPHGG6Nnz55xzDHHxG233RbTpk1b4L7vv/9+7L333tGkSZNYeeWV4/jjj4+pU6dW61jvuuuuyLIsXnzxxfnGHn/88dhhhx2iSZMm0ahRo2jfvn1cf/31UV5eXq2551nhihPl5eXRvXv3ePfdd3Ob829/+1vsu+++MXz48DjyyCNjyy23jNNOOy3OP//83L4HAAAAAAAAAPyUjz76KLbccst46KGHokGDBtG5c+eIiLj55ptjt912W2Bp4OSTT46nnnrqR+ddlPviQ4YMiU022SROOumkeOGFF+Lhhx+OY445JjbddNMYM2ZMlX3ffPPN2G677eLpp5+OPffcMw466KDo169f7LPPPpFS+tE1ffHFF/GHP/xhgWMPPfRQdOnSJSZPnhyHHXZYdO3aNcaPHx8nnXRSHH/88T867//K0k+tZDkyceLE6Nq1awwYMCAiIo444oj4+9///ovmHDFiRGy00UbRsGHDeOutt6JVq1YREXHWWWfFVVddFe+991786le/+qVLBwAAAAAAAICf1LFjxxg4cGDcfPPNcfTRR0eWZTFp0qTo0KFDfPDBB/Gvf/0runTpEhERM2fOjGOPPTb69etX+dkFPblhUe6Lz5o1KzbddNOYMmVKPPPMM9G2bduoqKiIq6++Os4444w46qij4vbbb4+IiLlz58bGG28cH3/8cTz++OOx1157RUTEM888E7vvvnv07ds3jj322IUe6+677x7PPPNMRES88MILlU/MSClFq1atonHjxjF48OCoUaNG5fFus802MWTIkBg2bFiss8461fqZrlBPnNhqq61i4MCBcd111+U256233hqzZs2Ks88+uzIcERFnnHFG1KxZM/r375/b9wIAAAAAAACAhfnoo49i0KBB8cc//jF69uwZWZZFRMRKK60UJ5xwQkREDB48uHL/vffeO+69997o27fvj867KPfF+/fvHx9//HHceOON0bZt24iIKCkpidNOOy1WXnnlKsWMf//73/HRRx/FPvvsU1maiIjYbbfdYtttt40777xzoWu65ZZb4plnnqmynnnGjh0bo0ePjl133bWyNBERUbt27ejcuXOklGLYsGE/esw/tEIVJxo3bhxvvvlm7L333rnN+fLLL0dExP777z/f99pyyy3j2Wefze17AQAAAAAAAMDCbLjhhjFt2rS46KKL5hubO3duRESVIkGWZfHiiy/+6FMdIhbtvvh+++0XL7/8cuVTLX74/b/77ruoV6/eT84bEbHrrrvGG2+8EVOmTJlv7LPPPovTTjstNtpoo/jTn/4033jdunUjy7L4z3/+M9/YkCFDIiJi7bXXXujx/q8VqjgxaNCg2GijjXKd8+uvv46VV145WrZsOd9YmzZtYvjw4bl+PwAAAAAAAABYmBo1akStWrXm2/74449HRMQOO+xQue2pp56K7bff/ifnXJT74iuvvHJ06NCh8mkX8/zlL3+J2bNnV3nQwddffx0REe3bt1/gvCmlGDlyZJXtKaU48sgjY+bMmdGvX7+oXbv2fJ9t2LBh7LXXXvHUU0/FZZddFuPHj49vvvkmLrzwwnj22WejU6dO0aZNm5887nlWqOJEaWlp7nNOmTIlVltttQWONW7cOCZNmhTTpk3L/fsCAAAAAAAAQHUMHDgwnnvuudh4441jp512qtxe3XvoP/e++MSJE+PWW2+NffbZJ84888zYbbfd4txzz60yb0TEqquuusB5IyK++OKLKtuvv/76ePHFF+OCCy5YYOFinrvvvjs6deoUZ511VjRr1ixWXXXVOP/886Nbt27xyCOP/PRB/0DZIu1dQKWlpVG3bt0Fjs1r8UyfPr3K40aWN7169VraS1hu/O1vf1vaS1guyFT1yVT1yFT1yVT1yFT1yVT1yFT1yVT1yFT1yVT1yFT1yVT1yFT1yVT1yFT1yVT1yFT1yVT1yFT1yVT1yFT1yVT1yVX1rIiZmjFjRvTs2TOyLItrr712vidBVMfPvS/+6aefxkknnRQzZ86MWrVqxXHHHVflCRHzihsLmvuH884zdOjQOOuss2LbbbeNM88880fXPGDAgBg0aFBERDRt2jQqKiri22+/jRdeeCEeeeSROPzww3/qsCutUE+cWBzq168fs2bNWuDY7Nmzq/wNAAAAAAAAAEvS73//+/j444/jpJNOih133PFnzfFz74tvvfXWMWXKlHj66aejdevWsf/++8ftt99eZd6IWODc/ztvRUVF9OjRI7Isi379+v3o0zJGjhwZPXr0iCZNmsSrr74a48aNiwkTJsSAAQMipRQ9evSIl156qZpHrzjxk9Zcc8353qkyz9ixYyPiv48QAQAAAAAAAIAl5bbbbovbb789ttpqq7jiiit+9jy/5L54jRo1Yrfddovnnnsu6tWrF717947y8vLKeSMiRowY8ZPzXnXVVfHaa6/FNddcE+uuu+6Prvfee++NmTNnxrXXXhvbb7995fZddtkl7rjjjkgpxd133/2jc/yQ4sRP2GyzzeK7776LDz/8cL6xQYMGRYMGDRb6yBIAAAAAAAAAWBxeffXVOPHEE2PVVVeNBx98MGrWrPmz51rU++Ippfn2W2211WKLLbaIMWPGxMSJEyvnjYh48803FzjvvM9NmDAhzjvvvGjYsGF8/vnn0bt378o/Dz/8cERE3H777dG7d+8YOXJkfP755xERsdFGG803b7t27SIi4osvvqj28StO/IQuXbpExPzvunnjjTfi008/jU6dOi2NZQEAAAAAAABQUP/5z3+iS5cukWVZPPzww9GiRYtfNN+i3Bc/4YQTolmzZjFlypT55pkwYUKUlJRUliw6deoU9erVi1tuuaXyKRQREd9991088sgj0aRJk9hkk01i6tSpMWvWrJgyZUr06dOnyp/HH388IiL69+8fffr0iVGjRsUqq6wSERFDhw6dbw2DBw+OiIimTZtW+/gVJ37CTjvtFJtvvnncdNNNceutt0ZKKYYOHRpHHXVUREQceeSRS3mFAAAAAAAAABTFsGHDolOnTvHtt9/G7bffHtttt90vnnNR7otvt912MWHChDjuuONizpw5ldsffvjh+OCDD2KnnXaqLE40aNAgjjvuuPi///u/OOGEE2L69OkxderUOOKII2LcuHFx+OGHR2lpaay11lqRUlrgnzvvvDMiIl544YVIKcWOO+4Ym2yySUREnH/++TFq1KjKNbz++utxyimnRETEXnvtVe3jL/uZP7fl2qRJk+Kqq66Kxo0bx6mnnvqT+993333RqVOnOPbYY+OPf/xjTJ8+PSoqKuLYY4+NffbZZwmsGAAAAAAAAAC+f+LD2LFjY5111omPPvooevfuXWV87bXXjqOPPnqR563uffFDDjkk7r///vjnP/8Z7733XnTu3Dm++eabePjhh2OVVVaZ76kVl1xySQwZMiRuvfXWuPvuuyOlFLNnz45NN900Lr744p/1M+jSpUt06NAhXnnllVh77bWjWbNmMWPGjJg6dWpEROy4447RtWvXas9X2OJEnz59olWrVtUqTqy77rrxwQcfxJVXXhnPP/981KtXL4488sg4+OCDl8BqAQAAAAAAAOB7L730UkREjBgxIvr06TPfeMeOHX9WcaK698VLSkriwQcfjOuvvz7uuuuuuOOOO2L11VePXr16Re/evaNZs2ZV9q9Vq1YMGDAg7rjjjrjvvvtixowZseeee8app54aNWvWXOR1RkSUlZXFgAED4uqrr4777rsvhg0bFuXl5dG6des44IAD4txzz42Skuq/gGOFLE7Me4zHzx1fkPr168ef//zn+POf//xLlwcAAAAAAAAAP8vs2bN/1ueqc4+8uvfFa9WqFaeddlqcdtpp1freWZbF0Ucf/bMKHT169IgePXrMt7127dpxzjnnxDnnnLPIc/6v6lcsAAAAAAAAAABWMIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhKU4AAAAAAAAAAIWlOAEAAAAAAAAAFJbiBAAAAAAAAABQWIoTAAAAAAAAAEBhrXDFiTlz5sSVV14Z66+/ftSpUyc222yzePrpp3/RnJMmTYrjjz8+WrduHXXq1IkWLVrEwQcfHB9//HFOqwYAAAAAAACA6ps2bVq0b98+evToUa39P/7446hdu3ZsvPHGMXfu3PnGF+W++KxZs+Liiy+O9dZbL2rUqBF169aNjh07xhtvvFGttfz5z3+OLMvis88+m29s7ty5ce+990avXr3iqKOOissvvzxGjx69wHkef/zx2GGHHaJJkybRqFGjaN++fVx//fVRXl5erXXMs0IVJ1JKceihh8YZZ5wRpaWlceKJJ0atWrXiN7/5TTz33HM/a87Zs2dH586d44477oitt946evXqFRtvvHE8+OCDsfXWW8eHH36Y81EAAAAAAAAAwMKVl5dH9+7d4913363W/hUVFXHkkUfGnDlz4pZbbomysrIq44tyXzylFPvuu2+ce+65MWbMmOjYsWOsu+668fLLL0fHjh3jnXfe+dG1vPvuu9GnT58Fjk2dOjU6duwY3bt3j0ceeSSef/75+NOf/hRt27aNF154ocq+Dz30UHTp0iUmT54chx12WHTt2jXGjx8fJ510Uhx//PHV+rnMs0IVJ/7xj3/E/fffHx06dIh33303rrrqqhg4cGBsu+220bNnz5gzZ84iz9mvX794++23o3///nHPPffE1VdfHf/v//2/6N+/f0yZMiUuv/zyxXAkAAAAAAAAADC/iRMnxp577hmPPfZYtT9zzTXXxOuvvx69evWKbbbZZr7xRbkv/ve//z2efvrp6NKlS4waNSqee+65eP/996N3794xa9asuOiiixa6jtmzZ8cRRxyx0Hv3J510Urzxxhtx3333xddffx2fffZZPP/88zFnzpzo2bNn5X4ppTjllFOiXbt28c4778Rf//rX6Nu3b3z66aexySabxO233x4jRoyo9s9nhSpO3HDDDRERcd1110WtWrUiIqK0tDTOPffcGDVqVDz//POLPOdbb70VERF77bVXle177713REQMHTr0lywZAAAAAAAAAKptq622ioEDB8Z1111Xrf0//fTTOO+886J58+YLfdLDotwXv/3226NFixZx3333RePGjSu3/+lPf4qIiMGDBy90LRdccEG8//770apVq/nGhg4dGnfffXf87ne/i4MOOqhy+0477RS77757jBgxovKVHWPHjo3Ro0fHrrvuGjVq1Kjct3bt2tG5c+dIKcWwYcMWuo7/tcIUJ2bMmBFvvfVWrL322rHppptWGdtxxx2jZs2a8eyzzy7yvPXr14+IiP/85z9Vtg8ZMiQiItZee+2ft2AAAAAAAAAAWESNGzeON998s7LU8GMqKiriqKOOihkzZsQNN9wQDRs2XOB+i3Jf/NVXX40PP/yw8mEG85SXl0dEVCky/NAbb7wRV1xxRXTq1CmOOOKI+cbXXHPNeOONN+Lcc8+db2zSpEkREVGvXr2IiKhbt25kWTbfehe25p+ywhQnxo0bF+Xl5dG+ffv5xmrWrBktW7aM4cOHL/K8Bx54YJSWlsbRRx8db7/9dkyfPj1ef/316NmzZ5SUlMRxxx2Xx/IBAAAAAAAA4CcNGjQoNtpoo2rte+ONN8bAgQOjVatWMWTIkDjllFPixhtvjIkTJ1bZb1Hvi88rWvzQ448/HhERO+yww3xjM2fOjCOOOCIaNGgQf//73yPLsvn2qVOnTmyxxRbRpEmTKttfe+21ePnll2O77baLlVdeOSIiGjZsGHvttVc89dRTcdlll8X48ePjm2++iQsvvDCeffbZ6NSpU7Rp06ZaP6OIiLJq77mMmzJlSkRErLrqqgscb9y4cXzxxReLPO/WW28d999/f3Tt2jW22GKLyu2rrrpqPPbYY/HrX//65y0YAAAAAAAAABZRaWlptfYbN25c5dMbRo0aFeeff37l2MUXXxz//Oc/o2PHjhHxy++Lz5kzJy655JLIsixOPvnk+cbPPvvs+OSTT+Kee+6JNddcs1rrv/fee+Pll1+OO+64I1q2bBn9+vWrMn733XfHgQceGGeddVacddZZldu7desWffv2rdb3mGeFeeLEvHDUrVt3geO1atWK6dOnL/K83333XVx33XUxZ86cKCsri+bNm0eNGjXim2++iZtvvjkmTJjwi9YNAAAAAAAAAHm74oorYvLkyVGrVq248cYb47PPPosPP/wwzjzzzPjmm29iv/32izFjxkTEL78v3qdPn/jwww+jR48esfnmm1cZe+WVV+Laa6+Ngw46KLp3717t9Z944olx8803x+zZs6N79+7RokWLKuMDBgyIQYMGRURE06ZNK59G8cILL8QjjzxS7e8TsQIVJ+Y9CmTWrFkLHJ89e3bMnj17kec99dRT46WXXoqTTjopJk6cGF988UV8/fXX0bNnz3jiiSfiwAMP/EXrBgAAAAAAAIC8PfTQQxHxfYGiV69e0apVq9hwww3jsssuixNPPDEmTpwY9913X0T8svviL730Ulx88cXRqlWr+Mtf/lJlbNq0aXHkkUfGaqutFjfddNMirf/bb7+Nd999N/bdd9/o06dPHHXUUZVjI0eOjB49ekSTJk3i1VdfjXHjxsWECRNiwIABkVKKHj16xEsvvVTt77XCFCdWX331KC0tjREjRixwfOzYsdG4ceNFmnPu3LnRr1+/2GSTTeKvf/1rZTmjSZMmccstt8SWW24ZL7zwQowePfoXrx8AAAAAAAAA8vLFF19ESUlJ9OjRY76xXXfdNSIiPvnkk190X/zLL7+Mgw8+OEpLS+P++++PRo0aVRk//fTTY/jw4XHHHXdUPhFiUWy66abx4IMPxlZbbRX9+/eP//znPxHx/Ws8Zs6cGddee21sv/32lfvvsssucccdd0RKKe6+++5qf5+yRV7ZMqqsrCzatm0bgwcPjpRSZFlWOTZmzJgYNWpUbLzxxos05/jx42PGjBmx4YYbVplvnnbt2sVbb70VX3zxxXyPBQEAAAAAAACApaVhw4ZRWloaDRs2nG9szpw5ERFRs2bNn31ffPr06bHvvvvG2LFj45Zbbomtttqqyuc++OCDuPnmm6NFixbxyiuvxCuvvFI59vLLL0dExNVXXx2NGjWK0047LVZaaaX57vVHRJSWlsYee+wRb775Znz00Ufxq1/9Kj7//POIiNhoo40WuN6I74sj1bXCFCciIrp06RIXXnhhPPTQQ3HAAQdUbr/rrrsiIqJTp06LNF/Tpk2jpKQkhg4dusDxt99+u3I/AAAAAAAAAFhWbLbZZvHCCy/EtGnTol69elXG3nvvvYiI2HjjjX/WffE5c+bEwQcfHIMHD47f//73ccwxx8z3ufHjx0dKKUaPHh19+vRZ4Nw33HBDRET07NkzHn/88Tj++OPjySefjI4dO1bZb8KECRERlU/DWGWVVSIiYujQobH++utX2Xfw4MHzrfenrDCv6oiIOPbYY6NBgwbRq1evGDRoUEREPPXUU3HJJZdE/fr1f/S9KwtSVlYWG220Ubz99ttx0003xdy5cyMiYsqUKXH66afH//3f/0WbNm2iTZs2uR8LAAAAAAAAAPxchx56aJSXl8dZZ50VKaXK7R9//HHlKzm6dOmyyPfFU0rRvXv3eOKJJ2KPPfaIv/zlLwv8/jvuuGOklBb45/zzz4+IiJEjR0ZKKdZaa63o0KFDzJw5M44//vgYN25c5TwjR46Mfv36xUorrRQ77LBDRERssskmERFx/vnnx6hRoyr3ff311+OUU06JiIi99tqr2j+rFeqJE82bN4/+/ftH9+7dY7vttouGDRvGlClTorS0NO68885YY401IiJi0qRJcdVVV0Xjxo3j1FNP/dE5L7vssth3332jV69eceqpp0bDhg1j3LhxUVFREaWlpXHjjTcuiUMDAAAAAAAAgGo77LDD4sEHH4zrr78+Bg0aFNtvv32MHTs2/vWvf8XMmTOjb9++0aRJk4hYtPvi//jHP+LBBx+MLMuiTZs2lSWIH5r36o1FsdZaa8Wll14aZ555Zmy44Yax7777RpZl8cgjj8S0adPi3nvvrXziRJcuXaJDhw7xyiuvxNprrx3NmjWLGTNmxNSpUyPi+9JG165dq/29V6jiRETEPvvsE0OGDInLL788hgwZEi1atIgzzzwzNt9888p9Jk2aFH369IlWrVr9ZHFir732ildffTUuv/zyGDhwYEyYMCEaNmwYW221VZxzzjnx61//enEfEgAAAAAAAAAskpKSkvjXv/4Vt912W9x1111x9913x5w5c6Jdu3bxpz/9Kfbff//KfRflvvhLL70UEd8/eeK6665b4Pfu2bPnIhcnIiLOOOOMaNOmTVx99dXxwAMPRL169aJjx45xwQUXRLt27Sr3KysriwEDBsTVV18d9913XwwbNizKy8ujdevWccABB8S5554bJSXVfwHHCleciIhYZ511om/fvgsdX2uttao8iuSnbL311vHwww/nsTQAAAAAAAAA+MWqc9+7tLQ0jjvuuDjuuON+cr7q3he/5ZZb4pZbbqn2OhfkggsuiAsuuGCBY/vtt1/st99+PzlH7dq145xzzolzzjnnF60lIqL6FQsAAAAAAAAAgBWM4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFiKEwAAAAAAAABAYSlOAAAAAAAAAACFpTgBAAAAAAAAABSW4gQAAAAAAAAAUFgrXHFizpw5ceWVV8b6668fderUic022yyefvrp3OYfN25cNGvWLFZfffWYPHlybvMCAAAAAAAAQHVNmzYt2rdvHz169FjoPl9//XUcddRR0bx58ygrK4tGjRpF9+7d46uvvvrRuRflvvgll1wSWZYtdLyioiKuvPLK2HjjjaN+/fqxyiqrxM477xxPPfXUAve/7777YvPNN486depE7dq1Y4MNNoh+/fotcN/HH388dthhh2jSpEk0atQo2rdvH9dff32Ul5f/6Jr/1wpVnEgpxaGHHhpnnHFGlJaWxoknnhi1atWK3/zmN/Hcc8/l8j1OPPHEGD9+fFx33XXRqFGjXOYEAAAAAAAAgOoqLy+P7t27x7vvvrvQfb755pvYeuut484774yIiF122SUaNGgQ9957b3To0CG+++67hX62uvfF77///ujdu/ePrvUPf/hDnHHGGbHaaqvF8ccfH7vuumu89dZbsddee0X//v2r7HvppZdG165dY8iQIdG+ffvYaqut4tNPP43DDz88/va3v1XZ96GHHoouXbrE5MmT47DDDouuXbvG+PHj46STTorjjz/+R9f0v1ao4sQ//vGPuP/++6NDhw7x7rvvxlVXXRUDBw6MbbfdNnr27Blz5sz5RfM/9NBD8cADD8RvfvObOPDAA3NaNQAAAAAAAABUz8SJE2PPPfeMxx577Ef3O/3002P06NHx5z//OUaNGhVPPfVUDB8+PDp16hQjRoyI22+/fYGfq+598euuuy4OOeSQSCktdJ9hw4bFDTfcECeccEIMGDAgrrrqqujfv3+89957UadOnTjnnHMq9x06dGicd9550aZNm/jggw9i4MCB8fLLL8fTTz8dJSUlcd5551U+SSKlFKecckq0a9cu3nnnnfjrX/8affv2jU8//TQ22WSTuP3222PEiBE/+vP5oRWqOHHDDTdExPf/BdWqVSsiIkpLS+Pcc8+NUaNGxfPPP/+z554wYUL06tUr6tevHzfeeGMu6wUAAAAAAACARbHVVlvFwIED47rrrlvoPpMmTYqHH344DjzwwDjvvPOirKwsIiJq1aoVf/zjHyMiYvDgwfN9rrr3xfv06RMnn3xyHH744bHddtstdL/BgwdHSin22muvKtvXXXfd2HDDDePzzz+PWbNmRUTEXXfdFRUVFfHwww/H+uuvX7nvrrvuGptvvnlMmDAhPvvss4iIGDt2bIwePTp23XXXqFGjRuW+tWvXjs6dO0dKKYYNG7bQdf2vFaY4MWPGjHjrrbdi7bXXjk033bTK2I477hg1a9aMZ5999mfP/7vf/S6++eabuOiii6Jly5a/cLUAAAAAAAAAsOgaN24cb775Zuy9994L3WellVaKSZMmxV133TXf2Ny5cyMiqhQO5qnuffFvvvkmbrvttrj99tsXOM889evXj4iI//znP1W2T5s2LYYPHx5rrLFG5UMRLr744pg8eXK0bdv2J9dct27dyLJsvnkjIoYMGRIREWuvvfZC1/W/yqq95zJu3LhxUV5eHu3bt59vrGbNmtGyZcsYPnz4z5r78ccfj3/+85/RqFGjmDp1apxyyinRvHnz6N69e6yxxhq/dOkAAAAAAAAAUC2DBg2K0tLSyqcvLExpaWnUqVNnvu2PP/54RETssMMO822v7n3xa665JkpLS39yrTvuuGOsttpqcckll8R6660XnTt3jrFjx8app54akyZNilNPPbXK/vOKFj/0xRdfxHvvvRctW7aMFi1aREREw4YNY6+99oonnngiLrvssujZs2dUVFTEzTffHM8++2x06tQp2rRp85Prm2eFKU5MmTIlIiJWXXXVBY43btw4vvjii0Wed9asWXHyySdHRMTkyZPjvPPOqxy76KKL4rbbbvvR97oAAAAAAAAAQF6qU1hYmBEjRkS/fv1i1VVXjW7dulVuX9T74tVdQ/369eO5556LPfbYI/bbb7/K7WVlZXHZZZfFGWec8ZNzXHjhhZFSipNPPjmyLKvcfvfdd8eBBx4YZ511Vpx11lmV27t16xZ9+/at1vrmWWFe1THvv5i6desucLxWrVoxffr0RZ73tttui5EjR0aWZXHhhRfGsGHDYujQoXHZZZfFnDlz4tBDD43333//F60dAAAAAAAAABanlFL07NkzZs2aFVdccUWVp1Eszvvid9xxR4wePToiItZYY42oV69ezJ07N/7xj3/E22+//aOfff755+O2226L9ddfP373u99VGRswYEAMGjQoIiKaNm0aK6+8ckREvPDCC/HII48s0hpXmOLEvEd2zJo1a4Hjs2fPjtmzZy/yvA899FBERPzhD3+Ic889N9Zdd91o3bp1nHnmmXHxxRfH7Nmz44477vj5CwcAAAAAAACAxaxPnz7xwgsvxL777huHH354lbHFdV/83nvvjWuuuSZ22mmnGDVqVHz55Zfx7bffxvXXXx8ffvhh7LrrrjF58uQFfvabb76Jww47LMrKyqJfv35Rs2bNyrGRI0dGjx49okmTJvHqq6/GuHHjYsKECTFgwIBIKUWPHj3ipZdeqvY6V5jixOqrrx6lpaUxYsSIBY6PHTs2GjduvMjzznu9x1FHHTXf2K677hoREZ988skizwsAAAAAAAAAS8IzzzwT559/fqy11loLLEAsrvvid955Z5SUlMT9998fLVu2jIiImjVrxu9+97s45ZRTYuLEifHYY4/N97m5c+fGwQcfHF999VVcccUVseWWW1YZv/fee2PmzJlx7bXXxvbbb1+5fZdddok77rgjUkpx9913V3udK0xxoqysLNq2bRuDBw+OlFKVsTFjxsSoUaNitdVWW+R5GzZsGBER66677nxjc+bMiYio0mwBAAAAAAAAgGXFJ598Et26dYvatWvHI488ssAHDiyu++Kff/55rLLKKtG0adP5xtq1axcR/y1t/NBJJ50UL774YhxyyCHxhz/8YYHzRkRstNFGizTvwqwwxYmIiC5dusTYsWMrHyMyz1133RUREZ06dVrkOTfbbLOIiBg1atR8Y++9915ERGy88caLPC8AAAAAAAAALE5fffVV7LHHHjFp0qS46667YtNNN13gfovrvvgqq6wS48aNW+DrOAYPHhwRMV+p4tJLL42bbropttxyy7jtttsWOm9ExNChQ6s9749ZoYoTxx57bDRo0CB69eoVgwYNioiIp556Ki655JKoX79+HHjggYs85yGHHBIREWeffXZlkyYi4uuvv44LL7wwSkpKonv37vkcAAAAAAAAAADkYPz48bHzzjvHyJEj4+KLL44DDjhgofsurvvim2yySZSXl8cpp5wSU6ZMiYiI8vLyuOeee+Kmm26KsrKyyleBRERcf/31cfbZZ0fLli3jsccei9q1ay903oiI888/v0rZ4/XXX49TTjklIiL22muvaq+zbJGPbBnWvHnz6N+/f3Tv3j222267aNiwYUyZMiVKS0vjzjvvjDXWWCMiIiZNmhRXXXVVNG7cOE499dQfnXPHHXeME044IW666abYeOONo1OnTjF16tR47LHHYtKkSXH22WfHBhtssCQODwAAAAAAAACq5ayzzopPPvkkmjRpEtOnT4/evXtXGf/h/fLFdV/89NNPj/vvvz/uvPPO6N+/fzRp0iS+/fbbmD17dkREnHfeedGqVauIiPjss88q17P55pvHDTfcMN98v/3tb2OzzTaLLl26RIcOHeKVV16JtddeO5o1axYzZsyIqVOnVh5P165dq73OFao4ERGxzz77xJAhQ+Lyyy+PIUOGRIsWLeLMM8+MzTffvHKfSZMmRZ8+faJVq1Y/WZyIiPjb3/4WHTt2jFtuuSXuv//+mDZtWrRu3Touv/zyOOaYYxbn4QAAAAAAAADAInvppZciImLChAnRp0+f+cb/93754rgv3rJly3j77bejT58+8fTTT8dXX30VZWVlsfHGG8dxxx0XPXv2rNz3tddeq3zaxSOPPBKPPPLIfPO1bt06NttssygrK4sBAwbE1VdfHffdd18MGzYsysvLo3Xr1nHAAQfEueeeGyUl1X8BxwpXnIiIWGeddaJv374LHV9rrbUipbRIcx588MFx8MEH/9KlAQAAAAAAAMAv9lP3vT/99NNFnvPn3Bd/8cUXf3R8zTXXjJtuuukn5+nevfsivQ6kdu3acc4558Q555xT7c8sTPUrFgAAAAAAAAAAKxjFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsBQnAAAAAAAAAIDCUpwAAAAAAAAAAApLcQIAAAAAAAAAKCzFCQAAAAAAAACgsFa44sScOXPiyiuvjPXXXz/q1KkTm222WTz99NO5fo+UUnTq1CnWWmutXOcFAAAAAAAAgJ/y4YcfRpcu/x97dx6mU/3/cfx95p4FM2MbDImxl6UilaiQrUIoZd/JUuqbJUpk30KbFlpQtlKkXZQokYjsIftuyFjHMjOv3x+u+/zmNpPQaGrO83FdrnLOuT9zjvlc55z7fF7n/alv+fPntyxZsliJEiWsR48eFhcXd9HPnT592kqVKmVVq1a96HadOnW66Hj4mTNnbMiQIVaiRAkLCQmxLFmyWJUqVWzp0qUXbXfatGnmOI5t37491fWJiYk2btw4q1SpkoWHh1vOnDmtUaNGtnbt2ou2+3dlqOCEJGvRooX16tXLfD6fPfbYYxYWFmZ169a1b775Js1+zmuvvWbz589Ps/YAAAAAAAAAAAAAALgUW7ZssTvvvNN++uknq1u3rj3yyCOWLVs2e+GFF+yuu+6y06dP/+ln+/btaxs2bLho+6NHj7Y333zzT9dLsgYNGli/fv1s//79VqVKFStatKh9//33VqVKFVuxYkWqn1u0aJG1a9fuT9tNSkqyBx54wLp06WLx8fHWtWtXu++++2z27Nl222232dy5cy+6339H8FVrOR1MmzbNZsyYYXfddZfNmzfPwsLCLDEx0apWrWodOnSwzZs3W0hIyN/6GVu2bLHevXun0R4DAAAAAAAAAAAAAHDpBgwYYPHx8bZy5UqLiYlxl3fq1MnefPNNmz59urVt2zbF53788Ud78cUX/7TdpKQk69Onj40cOfKiP3/SpEk2Z84cq1+/vk2cONFy5MhhZmb9+vWzIUOG2ODBg+3jjz8O+MyHH35obdq0sTNnzvxpu2+++aZ99tln1rx5c3vvvfcsKOh8HYiuXbta1apVrXnz5rZjxw7LkiXLRffvSmSoihOvvvqqmZm98sorFhYWZmZmPp/P+vXrZzt27PjbVSKSkpKsTZs2dvbsWbvmmmv+9v4CAAAAAAAAAAAAAHA5li1bZmXKlAkITZiZ3X///WZmtnnz5hSfOXXqlLVp08YiIyMte/bsqbbbqVMnGzlypPXr1y9F28m98847VqBAAfvggw/c0ISZ2dNPP21mZsuXLw/YfsqUKdaoUSOrWrWqNWzY8E/bffvtty0oKMhGjx7thibMzCpWrGi1a9e2Q4cO2eLFi//0839HhglOxMfH27Jly6xw4cJWtmzZgHVVq1a10NBQmzdv3t/6GS+88IItWrTInnvuOStevPjfagsAAAAAAAAAAAAAgMsVERFh27Zts/j4+IDlq1evNjOzwoULp/hMr1697Pfff7exY8datmzZUm33xIkT9sknn9igQYMu+vMXLVpk69evd4sZ+CUmJpqZpZgFYvfu3TZs2DD79NNPLSIi4k/bXbdunRUoUMDy5s2bYl2uXLnMzCw2Nvai+3alMkxwIjY21hITE+3mm29OsS40NNQKFixoW7ZsueL2N2zYYP369bMKFSpYnz59/s6uAgAAAAAAAAAAAABwRZo2bWqHDx+21q1b2/bt2+3YsWP24Ycf2ogRIyxPnjz24IMPBmw/f/58e/31161hw4bWsmXLP213ypQpVq9evUvah9QCEJ999pmZmd15550By5966il75plnzOfzXbTN4OBgi4uLs4SEhBTr1q1bZ2ZmBQsWvKT9u1wZJjhx7NgxMzOLjo5OdX2OHDls9+7dV9R2YmKitW7d2oKCgmzy5Ml/+QsFAAAAAAAAAAAAAOBq6N69u/Xs2dM+/PBDK1y4sGXLls0aNWpkJUqUsO+//96ioqLcbY8fP27t2rWz6OhoGz9+/EXb/Tvj4OfOnbNhw4aZ4zj2v//974raLVmypB09etTeeuutgOWffPKJLVmyxHLnzm233nrrFe/jxWSY4IT/HztLliyprg8LC7NTp05dUdsjRoywZcuW2ejRo5miAwAAAAAAAAAAAACQbtatW2cffvihmZ2v/JA3b15zHMfWr19vb731liUlJbnbdu/e3Xbs2GHvvPNOQKAirQ0dOtTWr19vbdq0sfLly19RG7179zYzs8cff9y6dOliEydOtCeeeMKaNGliZmYdOnSw0NDQNNvn5DJMcMJfCuTMmTOprj979qydPXv2sttdvXq1DRo0yO69917r0qXL39pHAAAAAAAAAAAAAACulCR7+OGHbe/evTZp0iSLi4uzffv22YYNG6xs2bI2ZswYGzJkiJmZzZkzx95++23r3Lmz1a5d+6rt08KFC23IkCEWExNjL7744hW307BhQ5s4caLlyJHDxo0bZ+3atbOxY8fa6dOnLTIy0rp3756Gex0owwQn8uXLZz6fz7Zu3Zrq+gMHDliOHDkuq81z585Z69atLTIy0iZMmJAWuwkAAAAAAAAAAAAAwBVZsmSJ/fbbb9alSxdr3bq1OzPDddddZ59//rllypTJ3n33XYuLi7MOHTpYsWLFbPTo0Vdtf/bs2WONGzc2n89nM2bMsGzZsv2t9tq0aWN79uyxpUuX2tdff+1Wr3jmmWcsV65cabHLqQq+ai3/w4KDg61MmTK2fPlyk2SO47jr9u/fbzt27LAbb7zxstp888037ddff7U777zTXnvttYB127Zts6NHj1rfvn0tR44c1qNHjzQ5DgAAAAAAAAAAAAAAUrNz504zMytVqlSKdTlz5rRrrrnGdu/ebUOHDrU9e/ZY3bp1bfjw4QHbxcXF2bZt26xv375WuHBha9++/RXty6lTp6xBgwZ24MABe/PNN+222267onYuFBoaarfddputXLnSVqxYYTExMdatW7c0afvPZJjghJlZ/fr1bdCgQTZz5kx76KGH3OXvvvuumZlVr179stqLjY01M7NFixbZokWLUt1m6NChFhMTQ3ACAAAAAAAAAAAAAHBV5cmTx8zMNm/enGJdbGys7dixw6Kjo92x7s8//9w+//zzFNsePXrUhg4dalWqVLmi4MS5c+escePGtnz5cnv88cftkUceuew2/sqAAQNMko0ZM8YyZcqU5u0nl2Gm6jAz69ixo0VGRtqjjz5qS5YsMTOzr776yoYNG2YRERH28MMPX1Z7/l9Ean+qVKliMTExJsm2b99+FY4GAAAAAAAAAAAAAID/V7p0afP5fPbOO+/YDz/84C7fsWOHtWjRwhITE61OnTo2adKkPx3rjomJsSpVqpgkW7BgwWXvgyRr1qyZff7553bffffZiy++mIZHeN6iRYvs008/tWrVqlnDhg3TvP0LZaiKE/nz57cpU6ZYs2bNrFKlSpY1a1Y7duyY+Xw+mzhxol1zzTVmdr70yOjRo5liAwAAAAAAAAAAAADwnxEdHW1PPfWUjRgxwipXrmzZs2e34OBgO3TokLt+4MCBV3Ufpk2bZh999JE5jmPFixe3/v37p9imZ8+elj179itqX5J169bNQkJCbOzYsX9zby9NhgpOmJnVq1fPVq9ebSNHjrTVq1dbgQIFrHfv3la+fHl3m7i4OKbYAAAAAAAAAAAAAAD85wwfPtxuuOEGGzdunK1atcri4uIsX758VqNGDRs0aJDly5fvqv78hQsXmtn5gMMrr7yS6jYdOnS44uDEe++9Z8uXL7cePXpYqVKlrnQ3L0uGC06YmRUpUsTGjx//p+sLFSpkkv7Wz7iSkiUAAAAAAAAAAAAAAPxdzZo1s2bNml3RZ7dv3/63tnnzzTftzTffvKKfPWnSJJs0adJFt2ndurW1bt36itq/UkH/6E8DAAAAAAAAAAAAAAD4FyE4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvg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AAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAAAAAAAAAAADyL4AQAAAAAAAAAAAAAAPAsghMAAAAAAAAAAAAAAMCzCE4AAAAAAAAAAAAAAADPIjgBAAAAAAAAAAAAAAA8i+AEAAAAAAAAAAAAAADwLIITAAAAAAAAAAAAAADAswhOAAAAAAAAAAAAAAAAzyI4AQAAAAAAAAAAAAAAPIvgBAAAAAAAAAAAAAAA8CyCEwAAAAAAAAAAAAAAwLMITgAAAAAAAAAAAAAAAM8iOAEAAAAA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+fXuu+9q7dq1ypkzp1q0aKEvv/xSQUFBeuONN9zt/ee2s2fPptcu41+OPoW0Rp9CWvLfa8fHx6tSpUrKkSOHJkyYoJMnT0qS+71Pknbs2MFAN/4SfQr4fwQn8Lc8/vjjchxHY8eOlSSdPn1aUuCJdtWqVXrggQfUunVrffvtt+7DNODPPPLII27Ypnv37pKkAwcOqHz58nIcR1WrVtWuXbvSeS/xb5X8AX/9+vV1zz33aPXq1e556eeff1aFChUUFhamgQMHutsSnsClOnjwoEaMGCHHcVSiRAk5jqOOHTuqdOnSuvPOOyVJ48ePl8/n0yOPPKJ169al8x7j32737t2Kjo6W4zh65JFHdOzYMUnnq3plz55dzzzzjKTz1Sn8oZ1y5coFfHEFLvTrr7+qdevWioyMVMOGDXXttdcqf/78buD5448/VnBwsDp06CCJax5S2rp1q3755RdJ5699gwcPls/nU0xMjDJlyqRFixbp8OHD7r175syZ9cILL7jnMPoULtVDDz2kTJky6bnnntPevXt18uRJNWjQQI7juJXi6E/4K3PnzpXjOKpfv76yZcumBg0a6NChQ0pISND111+v+vXrKzEx0f2+uH//fr333nvpvNf4N6NPIa3Rp5CWjh49qhtvvFHZsmXTG2+84VYFOHXqlL799ltNnTrV3ZaBblwK+hRwHsEJXJajR4/q3Llz7t+3bdumEiVKuANFUuADjd9++00PPPCAHMdR9erVtWTJklS3A/zi4+M1YMAA+Xw+OY6jatWq6ffff9cNN9ygSpUqaerUqcqdO7dq166tHTt2pPfu4l8meWji4YcfdgM49913n9atW+eed5YuXarbbrtNoaGhhCfwl5L3gX379mnw4MFyHEdDhgxRbGysbr31Vref+TVr1kwhISFyHEdNmzblCwRS8PerxMREHTt2THfffbeyZMmifv36afny5dq/f7927typKlWqqEGDBho9erTq1Kmj4OBglSxZUjVr1kznI8C/2Zo1a9S8eXNlzZpVL730kqTzVb1uvPFG5ciRQwsWLJAk9e/fP+CaB/jt3r1b1113nR588EFt2LBBAwYMkOM4Gj58uH7++Wc5jqM33nhDjz/+uMLCwvTGG2+oYsWKypo1K+EJpOrcuXNuf0j+TME/PYc/NOE3bdo0RUZGKigoyK2yBPyVevXqyXEctWjRIuAt7dq1a+vWW2+VdP5+/osvvtD1118vx3H0ww8/cK7Cn6JPIa3Rp5AWEhMTNWHCBBUtWlQjR450K8GdPn1aX3zxhcqVK6ccOXK4UzVKDHTj4uhTwP8jOIFLtmrVKjVs2NAt55uYmKj4+Hh16NBBjuPoyy+/DLiJ27x5s+655x5FRUXpscceU1hYmOrWravVq1en1yHgX+7gwYMaOHCgHMfRM888o2bNmrkD33fddZe7XYUKFdxQBZUn4Jc8NNGwYUOFh4erc+fOGjp0qCIiInTvvfdq/fr17naEJ3Ap9u7dq9dee01PPfWUtm3b5oYmnn32WUnn+13evHlVr1499zONGjVS7ty5tXfvXk2aNElBQUHq2LFjwLRW9Cnv2rdvn+Li4iT9/3QKkjRu3Dj3mpcvXz5lzpxZ+fLlk+M4ioiIUNasWXXLLbfogw8+0JgxY/Twww9r/fr16XUY+Bf79ddf9fDDDytLlix6/vnn3eUzZszQ1KlTVa1aNUVGRmrq1KlavHixqlWrpnLlymnLli3puNf4tzlx4oTKlSunQoUKadCgQfL5fO61b8+ePQoPD1dYWJhCQ0P10UcfSTpfoaJ8+fKKjIzUiBEj9Mcff6TnIeBfZPPmzZowYYKWLVsWsLxr167u9Bz79++XFHhP7w/sVK9eXbt37/5H9xn/Hcnvq/2BwEqVKumNN97QjBkz9NNPP6lJkyYqU6aMmjdvrhtvvFGO46hGjRp64IEHCHohBfoU0hp9CmnBX+nbf68UFxenH3/80e0fp0+f1pdffqm8efPqhhtuUObMmXXNNddo0qRJbhsMdCM5+hSQOoITuCQJCQl6++235TiOGjZsGLBu5cqVypw5s/r27esu27Rpk2rWrKkcOXJo7ty5SkxM1EsvvSSfz6cmTZpo06ZN//Qh4F9o7969WrdunXbt2qXjx4+rb9++chxHffr0cdc7jqOHH37Y/UzTpk2VJ08ejRkzRrlz59a9995L5QmkGpp44okndPz4cZ0+fVqvvPKKwsPDVb9+ff3888/uYOWyZcsIT+CiNm7cqGuvvVaO42j69Olq3769e73bv3+/ypcvrwoVKrjb+0MT27dvlyQNHz7cHQxv0qRJwBeIU6dO/bMHg3S3c+dO3XvvverRo4cOHjzoLk9MTNSPP/6ooKAgvfPOO1q+fLmmTp2qCRMmKCQkRI888oi2bdsmSfrhhx8C+hSBVG/bsGGDO9gonQ8F1q1bV0FBQRo+fLi7vGrVqsqcObNee+01LVy4UE2bNlVoaKj69++vxx57THnz5tWUKVMkne+Pixcv1tChQ91zGbypadOm7vnGH5qQzlcVjIqKUkREhObMmSPp/4Ngu3btUr58+VSgQAE9/vjjbnnX5Lin8pb4+Hg1adJEjuPooYcecpf7p3jp06dPwDVRCqxI0aBBA2XOnDngHJX8vwcOHAj4LgBv2LJlS0AQx38O2rBhg3LmzKmQkBAVK1ZMoaGhypEjhxzHUWhoqEqWLKkWLVpo0aJFevfdd1WqVClNnDjRvS/n/ORd9CmkNfoU0trQoUNVq1YttWzZUgMGDNDChQvddf4B7muuuUaVK1eWdD5QnylTJsXExOjNN990t2WgG370KSB1BCdwyfbs2aMbbrhBUVFR2rJli5KSknTu3DnFxsbq+uuvV7ly5fTHH39o3bp1atKkicLDw7V8+XL38ydPntSIESPk8/nUvn177dmzJx2PBv8G/gHF+vXra/LkyfL5fO487vv27VPZsmUDKk0kf4tbOj9A7jiOatas+aeVJ/hC4S2NGzdWeHi4unfvrgMHDrjLjx07platWslxHLVq1UonTpxw+8by5ctVoUIFhYSEaMCAAe5nPv74Yzc8MWvWLEn0J68aO3asHMfRpEmTAtLYTz/9tBzH0euvv64zZ86oadOmyp07tzvAPXjwYAUFBWnevHn64IMP5DiOHnnkEW3evFnHjx/XoEGDAkrcIeM7d+6c6tat6w4UHTlyRCdOnNBLL72kXbt2KTg4WM8995y7/aeffqpMmTK51Ur8/Wjw4MHq3r27HMdR8+bN+VLqUdu2bVPJkiXVunVr983+0aNHu1MJ+VWqVEklS5ZUhQoVFBUVpddff107d+5Unz59FBwcrHvuuUeO46hChQrude7NN9+U4ziaOHFiehwa0pl/EPqtt96S4zgB4dIdO3a455+aNWumCNeMGjVKQUFBKliwoHr27Okuj4uL07Zt2wJKUsM7li1bpkyZMikqKkqLFy/W6dOndf/996tr167as2ePjh8/rhUrVgRUYjpz5owkacGCBYqJiVHp0qXdII5/3bfffqsaNWrom2+++ecPCukmLi5O9913nypUqKC5c+e6y48fP66TJ08qb9686t27t+Lj47V3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deu6Zc8///xz97Oco7zpwIEDGjt2rIKDg+U4jmrXrq3JkyfrgQce0LPPPqu5c+fq559/VpkyZdSxY8cUlZT817v58+crJCRErVq1UubMmVWiRAkC8x5Fn0Jao0/h70jtucIXX3yh8PBwValSxZ3yTJK2bdumG264QSEhIQoLC1P79u0VHx/vtrF792698MILchxHL774ovu5l156SVmzZlVwcLB+//33q35MSF/0KeDSEJzAZdu5c6ciIiLcN4uaNm2q999/Xz169HBLr/oHB/bv369ixYrprrvuCmjj/vvvd+dR5s1Ib7jY4GDXrl3d9PXQoUN15MgRd92KFSvUsGFD9wHbhaGJ5G9x58iRIyC9zYBkxvdnD0l/++03lShRQiEhIfrll1+0ZcsW3XHHHcqSJYvKlCmjTJkyacyYMfrjjz909OhR1a9fX1myZNG7777rlkpMSkrSoUOHNGTIED355JM6ceLEP3lo+Af5H1ZIKd/k9i87ceKEKleurEyZMqlo0aLKlClTivDEunXrVKtWLeXIkUOdOnVSWFiYO+0LoQnvSP57ve+++wJ+50lJSdq7d68KFiyofv36af/+/W5gIiYmRp06ddKwYcO0ePFiTZw4UVu2bNGmTZvUsmVLBQUFqXPnzoqPj9d3330nn8/nTg9z4c9FxuSfeqNu3bras2dPwLrffvtNN9xwg8qUKaPg4GC1b99eJ06ccPvFrFmzFBUVJcdxFBoaqk8++USS9MYbb6hQoULavn27KleurBtvvJFQswckP1906tRJ5cuXT7USxJNPPinHcdSxY0cVKlRI119/vT755BOdPn1a0v9PTfXVV18FtHthaOKmm25SsWLFAqZMQ8b0VwGG/fv3K0+ePPL5fCpevLiio6Pd6ReTkpJS3If1799fRYoU0fLly7V69WqFhISoYsWKmj179iX/TGRMx44dU5cuXeQ4jlq2bKmSJUsqODhY1113nRsWbN26tWrXrq2YmBi9+uqryp07t2666SZ9/vnn7nc+fxB18ODBkqR58+Zp48aN6XloSCf0KaQ1+hSuxK5duwIqal04lcKuXbvUqlUrOY6j6tWrB1T53rZtm2688UY5jqNevXq5y3fv3q3nnntOjuO4/cjvl19+0YABAzR9+vSrdERIb/Qp4PIRnMBlOXfunOLi4lS0aFHVqVNHHTp0kOM4atq0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yJQpk4YNG6aZM2fq5ptvVqNGjdxtOEdlfBUrVlTevHk1adIkNzTxyy+/uMGu7du3q1q1asqVK1eKMGlsbKxy5coVEAa89957/zQ8ceLEiat7MEh3qYUmpPOVlrJnz67bb7/9ktqJjY3VK6+8ouDgYGXLls19+7t169Zq3Lixtm3bdjV2H/9Sw4YNU1RUlDp06KB9+/apR48eCg0N1SOPPKLbb79dPXr0UM+ePZU/f/6AakkXfv87deqUO21H8eLFNXv2bB0/flwfffSRypYtS2jCg3r37q2wsDCVLVtWkZGReumll/TMM88oODhY9evXd58tXDiwlPz+yB+eiI6O1nfffaeDBw/q0UcfDbg3JzSRsR0/flzFihVTdHS0HnnkEX344YdasmSJfv75Z61evVpff/21hgwZolatWikiIkI//vij+9mkpCTt2rVLBQoUUMeOHSX9fzWU1AYljxw5onHjxmnx4sX/6DHin0WfQlqjT+FqSn6fs3TpUt16663y+XzKmjWrpk6d6t43XVgV7mID3X48k/Im+hRwZQhOeNSWLVuUJUsWVapUKcUNmP+mzf8GmiT98ccfKQYjk0t+onziiSfkOI4eeughbd26VcePH9eXX36ZYgoPZHxJSUnuBffLL7/Utddeq5CQEJUqVcrd5mL9Knl4om/fvjpw4IBGjhyp8PBwKk14wLlz59S5c2c5jqNmzZq5y7t3765bbrlFkZGR7rzbJ06c0Jo1azRt2jR98MEHKfpV8rdyk5KS9Ntvv8lxHNWuXTvgJnL9+vX0pwws+e/6wi8Hp06d0tdff618+fKpVKlSiomJUa5cubRhwwZJKQeNLnTgwAHVqFFDEREReu6559x5A5P/DGQ8/j41ZswY981av99++82drsX/wGz79u2qXr26oqKiAkJhCQkJuueee1StWrWA+6Xk4Ynk4S9kbH8WmpCkQ4cOqXDhwipQoID2799/Se0tXLhQefLkUaNGjdxpFSSl+vADGdu7776rQYMGadeuXZLOh5sLFCig6OhoPf/885LOn9e6d++uvHnzXlJ4omDBgoqKilLZsmWVJ08eFS9enNCEh/jvsRctWiTHcVSgQAG9++67ks6/kVa9enU5jqMGDRqkWnlCShmeiI6OVq5cufTTTz8FbEdowhueffZZt2KJf/rYC/+EhISoYMGCmjdvXorPP/TQQ4qOjtbx48clSe+//747KPnDDz8EbPtX9/fIGOhTSGv0KVwNye9zFi5cqBo1aihbtmwaPny4e2+U2nOmyxnohrfQp4ArR3DCo3bu3Kknn3xSYWFhuvfee7VkyRJ33UMPPaTMmTNr8+bNSkpK0rp169SyZUu9+eabF20z+QOPxx57TI7jqGLFijw48zB/nzhz5ox+/PFHRUVFKUuWLCpatKg++OCDFNv5Jb+wJw9PDBkyRG+88YZatmz5p59FxrJ//37Vrl1bPp9Pbdu21Zo1a/TEE08oe/bsaty4saZNm6batWurRIkSCgkJkeM4uv7663Xu3DkdPnzYnbf7QocOHVJERIT7xu5flTtHxrJv3z7Nnj1b27dvl3R+zvbZs2crX758qlatms6dO6dZs2YpJiZGUVFR7luSf/XQYu/evapRo4Yb9pI4R2VUF54z1qxZo65duwZUspGkl156SVFRUcqfP79WrVol6Xx4wt9P+vfv727722+/6dSpU0pISAjoN7Vr15bjOHrqqac4V3nAn4UmkpKS3HNQq1atFBQUpJ9//jngsxcOKvr//s4778hxHE2aNCnV7eANR44c0ccff6ydO3dKOh/4GzhwoG688UY3NNG/f3/NmjVL586dU48ePVKEJy4Mpp46dUqzZs3STTfdpODgYN12222E5TO4ZcuWadasWdq+fbsbxDp58qRatmyprFmzatasWTp58qSOHz+usWPHKiQkRDfffLPCwsJUu3Zt/f7776m2m/z69vbbbytXrlxyHCfVASdkbLNnz5bjOBowYIC2b9+uRYsWacGCBXr//ff11Vdf6bvvvtPKlStTTB3rv7YNHTpUdevW1aJFi9xl/kHJu+++253LG95Bn0Jao08hrSV/1rRgwQLdfffdioyM1KxZsyRJP/zwg3LlyqVcuXLp9ddfd7f9q4HuC/sgvIM+Bfw9BCc8JvmD0gMHDqhfv37y+XyqXbu2Vq5cKUm6/vrr1aBBA0nn52O7//773cSsv9z0pbTfvHlzhYSEuANTyNj8v/sjR45o79697vL4+Hh9+umnypcvn2rWrKkvv/xS119/vYoUKRLQny42uLhx40a1atVKISEheuqpp3TgwIG//Awyjv3796t+/fpyHEdFihRRZGSkRo8e7Z6bMmfOrEqVKunBBx/Us88+qw8++ECxsbHq3bu37rrrroD5k/3++OMPZcuWTbVq1UqHI8I/bcGCBZozZ46k82Xrhw4dqkKFCrmVkebNm6eoqCjdcccd7iBAUlKSpk6dqkKFCl1WeGLTpk2qU6fOn4Z28N+3c+dO9erVS1OnTg1YvmbNGnXr1k2O46hPnz7u8pEjRypbtmy688473X60detWtWjRQi+++KKOHTuW6kB28ili6tWrpxkzZlylI8K/RfLQRPJQxIVzjg4ePFiO47jntYs5ffq02rZtqwoVKrj3+gQnvOHHH3/U4MGDdfDgQe3fv1/9+/dXvnz5NGfOHCUkJGjKlCnKnTu32rZtK+l8qCtPnjzKli2bFixYoPj4+FQrT6QmLi5Oy5Yt06FDh/6JQ0M6OXr0qHtPHhwcrHr16uno0aNq1aqVHMfRTTfdpB07dkiSRo0apaCgID355JM6d+6cnnvuOYWFhalmzZrauHGje17zf6+TAoM5I0eOVObMmbmf8hD/tSkxMVHXX3+9KleunOJ6lZCQoOeff16jRo1yp/K8cEq9PwuZ+gcl77jjjkuu2IT/NvoU0hp9CmntwudL8+fPV5UqVZQlSxZ3gNv/7PvHH39U7ty5L2mgu0uXLnIcRzVr1nSnaoQ30KeAtEFwwqP8N21//PGH+vfv74YnnnvuOYWHh2vatGnatm2bqlat6p48a9eurZCQEH344YcXbdt/Uk1ISAgYQEfGtHfvXvch1/79+zVy5Eh17dpVq1ev1tmzZzVjxgzlz59flStX1unTpyWdHxgoUaKEihYtqilTprhtXSwIsWHDBt13333KkSMH/SoDO3v2rHbs2KE1a9Zo1apV7luL3377rQoWLOgmXCVp2rRpmj9/vvuA1u/48eMaOHCgHMdRp06dUv05X375pXvDJxHCyaiSkpL0448/ynEcdenSRUePHtWAAQPkOI6uu+46hYSEqGPHjmrWrJkefPBB98HGnj173DamT5/uliG/1PAEVQEytoULFyo4OFi5c+fWt99+K0n6/vvvNWbMGH3zzTephif69Omj8PBwtWnTRvHx8e7yU6dOBbT93XffBVzj/H2Nc1TGlzw0sXTp0oB1586dU0JCgvbt26fNmze717iaNWtq/PjxGjhwoPr06aO+fftqxIgRGjx4sE6cOOF+fv/+/Tp06BD9yEPOnDmjkSNHynEcVapUSS1btlRUVJS6du3qbrNu3TrVqFFD+fLlc0OmH330kRzH0S233KJ169bp+PHj6tmzpxzHcefivlilOGR8ixcv1vjx41W3bl0999xzqlu3rsLDw3XHHXcoJCRE9913n/t84dFHH3U/N3/+fMXExMhxHK1evVqStG3bNpUpU0aPP/64u13y/kUQJ+PbsGGDfvnll4BlSUlJeuCBB5Q7d+4U99RHjhxxK3H169fPvdZd+ID/wvb8pkyZ8pfPs/DfRp9CWqNP4Wo5deqUXnzxRb3yyiuSzt9jlSxZUpkzZ9bMmTMl/f8U2Jc70L1nzx41b95cjuOoTp06PKPyCPoUkHYITnjQ3Llz1aRJE/cBWWxsrAYOHKjg4GBFRETommuu0bfffqu6desqKirKfTutf//+chxHoaGhKd6yhPckJCToo48+0s0336wjR47oyJEj7huQjuOodevW+uKLLxQeHq5bb73V/bLgHwT66quvLjs8sXLlSre8MDKmuLg4lSpVSkFBQQoLC1O2bNk0evRo9e7dWyEhIcqcObPCwsL0yCOPuH3FH8iRzgd5hg4dquzZs+uxxx5zl19YWvqbb77RzTffHFBSHxnTtm3bVKtWLeXJk0dPPPGEgoKC3JLkd999t2JiYtShQwdt2LBB0vkHFbVq1dL06dPdNj788MPLnrYDGdvbb7+t6Oho3XTTTRo7dqxKly6tQoUK6Y8//tDOnTvd8MQzzzzjfqZJkyYKCQlRt27ddO+99+rll1921508eVKff/65smTJoqeffloSg5FeMnfuXPl8vhShiQkTJqh379667777dPvttysmJkbR0dHKmjVrqnMpJ//z6aefuu0kvwZy7vKO06dPa/LkyQoLC5PjOHr88cf17LPPutMvbt26VRs2bNA999yjPHnyuFVOpk+fLsdx9NBDD+nYsWPud0XeLPK2C69Jhw8fVtWqVZUtWzbNmDFDSUlJat68uYKCghQUFKQ2bdq4265Zs0bNmjVTaGioW358586dbii6e/fuAe0T8vKGX3/9VYULF3ar3kj/f40aM2aMHMdJdeqfffv2qWzZsgoLCwsICl6s33BP5Q30KaQ1+hSuljNnzqh79+5yHEf58uXTW2+9penTpyt//vwBz8iPHz+e4rOLFi26pCkWtm7dqgcffNANrCJjo08BaYvghAe99dZbchxH06ZNc5edOnVKjz76qEJDQ/XII4+oYcOGyp49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gtS5c2d3m/r167vTdrz33nuSzpf39Vea6NWrF6EJD/Nfq/bv368SJUrohhtuCKjc5e9jn332mRvUGTFihLueQUlciD6FtEafQlo7e/as+vbtK8dx9OSTT+rkyZPuuo8//lihoaEqWbJkwPfBjz76SK+++qquu+465cuXT2vXrg1oc/HixYqOjlbevHk1ceLEf+pQ8C9BnwKuHoITHuK/6fPf3PnfJjp37px69uwpx3FUvHjxPw1NbN++XTlz5lSzZs0knS9z7i9n7n+LF95x5swZvfDCC3IcRw8//LAkaf78+cqdO7eqVKni9reyZcsqKChIjzzyiA4dOqSzZ8/qgw8+cCua+M2dO1dFihRR4cKF9e233/7jx4N/j59++kn33nuvgoOD3dLiR48eVXh4uJ588kl3u9OnT7sD3lmzZlVERIQ++ugjffDBBxo6dKjatm3rDkRFRUWpevXqWrhwYXodFtLR+PHjVaJECeXJk0dZs2ZVrVq13PJybdq0UVhYmKZNm6ZOnTopU6ZM6ty5s3bv3i3p/x9o+N8skaQiRYrorrvu4mGHh02cOFG33367tm/f7v49OjpaZcuW1V133aWsWbPq888/lyRt2bJF77//vrZu3SpJatGihXw+n+Lj4/Xjjz+qQoUKbuo/e/bszBfpUevXr3cHFJOHSC+sapOQkKDjx48rW7ZsbnDiwnPRyZMn9d577ylr1qwBoQnOWd7iry749ddfq23btm6ItFu3bnrssccUGhqqPXv2aObMmfrkk08kSZs3b9Z1112nihUrSpIKFSpEtRKkaurUqXIcR7lz51ZYWJi6devmrtu2bZsaNWrkTtvRsmVLLV26VDExMVSaQAodOnSQ4zhq2rSpG1r2P5/aunWrli9frrvuukvR0dGaNGmS+zn/vXnyQckBAwa4wWaued5Fn0Jao08hLcTGxqpTp07u1MOrVq1y1yUkJOjRRx+V4zi64YYbNH369IDP7t+/X7/++quk//9+6O9f/srgPXr0+IeOBP8Whw4dok8BVwnBCY9JSEhwKwT4T45btmzRLbfcoujoaDdl9v7776cammjSpInbVsWKFVWkSBFVq1ZN69at++cPBuluzZo1CgkJ0XXXXadevXopT548uvvuu91kdbt27ZQlSxZ3Lu527dq5g0zS+S8JiYmJ7gDme++9J8dxNG7cuHQ5HqS/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75GYmMi9995L7969adWqFX379qVbt24UFxf7dqSO6b777uOZZ55h7NixDBkyJBKaqK32VsQPPPAAd911FxdffPHpbqrOMs5TOllCoRCvvfYakyZNYtasWVxwwQW0bNmSYDDIHXfcQVpaGuPHj2fDhg106dIFgIMHDxru0jE5piSdqLM6OPHPoYn333+fKVOm8POf/5zFixdz880306VLF8aPH0+PHj2Af7xpW3NuzQeD2uGJ7OxsXnjhBS699FIWLlxISkpKXXZTp9nRAjY1oYmCggK6devGggULjghLwJHjsfY1Nm/ezF133cWf/vQnCgsLyczMPOKcpUuX8sUXX3DjjTe6ICnpuKxatYrMzEzi4+MZNGgQ+/btY+7cuQwZMoS4uDimTJnC5MmTGTZsGIFAgJdeeons7Gz69+/Piy++GJmvwuEwxcXF5OTkUF5ezvz58wkGgzz44IOsWrWKN998k1tuuYXly5fTokUL2rZtW9ddlyRJks4ZlZWVTJs2jdGjR/P444+zZcsWPvjgA5577jm6dOlCSUkJzZo1o2PHjnXdVJ3BysrKWLRoEbfffnuk2uDR1A5PSMfLeUony969e6moqOB73/se5eXl5OTkcN1113HXXXfx7LPPMmXKFP74xz/SvHlz5yodF8eUpBNx1gYnjhaayM/P57bbboukwv7whz/w4x//mPbt25Obm0vv3r2JiYnhgw8+YMyYMRQUFJCSkvK1EEXtyhP/8R//waZNm4iPj6/L7uo0evXVVykpKaF58+b85Cc/IS0tjSlTphw1NHHw4EFefPFF7rzzTs4777yjhid27NjBjTfeSP369Zk7dy4tWrSwJJ2kb2XVqlUUFhaSn59PIBAgPj6eSZMmMWzYMKZPn86wYcMYOHAgBQUFzJo1i0ceeYSGDRuydOlS0tLSgH/MUeFwmCVLlvDQQw/x8ccf07JlS7Zs2cKcOXPo16/fMas1SZIkSTr1KioqeOaZZxgxYgQAv//978nKynKRW99IzYtk0qngPKWTqeZ7qL///e+RbbGvvvpq4uLiKC4uruPW6WzkmJL0TZyVvzEfT2gCoFmzZqSkpFBWVkabNm2IiYlh69atdO/enS+++IKoqCimT59O06ZNCYVCkcoTiYmJTJs2jb///e/07dvX0MQ5IhwOU1lZydNPP83atWsJh8MUFRWRkZHBCy+8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",
      "text/plain": [
       "<Figure size 2500x1000 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用missingno库进行可视化展示\n",
    "missingno.bar(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "a019d440",
   "metadata": {},
   "outputs": [],
   "source": [
    "#缺失值处理-样条插值法\n",
    "import pandas as pd\n",
    "from scipy.interpolate import UnivariateSpline\n",
    "\n",
    "# 定义一个函数来处理缺失值\n",
    "def spline_interpolation(df, column):\n",
    "    # 找到列中的缺失值\n",
    "    mask = df[column].isnull()\n",
    "    # 非缺失值\n",
    "    x = df[column].notnull()\n",
    "    # 使用样条插值法进行插值\n",
    "    f = UnivariateSpline(df[column][x].index, df[column][x], s=0)\n",
    "    # 将插值结果填充到缺失值位置\n",
    "    df.loc[mask, column] = f(df[column][mask].index)\n",
    "\n",
    "# 列名列表\n",
    "columns_to_interpolate = [\"最低交易价格\", \"平均交易价格\", \"最高交易价格\"]\n",
    "\n",
    "# 对每个列进行插值处理\n",
    "for column in columns_to_interpolate:\n",
    "    spline_interpolation(df, column)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "955cb4f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "农产品市场所在省份    0\n",
       "市场名称映射值      0\n",
       "农产品类别        0\n",
       "农产品名称映射值     0\n",
       "规格           0\n",
       "区域           0\n",
       "颜色           0\n",
       "单位           0\n",
       "最低交易价格       0\n",
       "平均交易价格       0\n",
       "最高交易价格       0\n",
       "数据入库时间       0\n",
       "数据发布时间       0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#检查是否有缺失值\n",
    "df.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3c05fdef",
   "metadata": {},
   "source": [
    "#### 重复值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "f888e130",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "151115"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看重复值\n",
    "df.duplicated().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "2e30cfb4",
   "metadata": {},
   "outputs": [],
   "source": [
    "#删除重复值\n",
    "df.drop_duplicates(keep='first', inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "2a87234e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#检查是否删除成功\n",
    "df.duplicated().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "e12245c0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=1951933, step=1)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#索引重置\n",
    "df.index = range(df.shape[0])\n",
    "df.index"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d189cd23",
   "metadata": {},
   "source": [
    "#####  异常值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "e3766bcf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAHqCAYAAADrpwd3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABrrUlEQVR4nO3deXhTdfr//1eadKFCCwUEBAqIoLKpYAFxhKrgjAiKjiNSHMRRBx1BFCyKiLuAyrAojoiigAKuuKEgjliHDwpSZbGCuCKLiIAlbWmb0vb9+8Mf+TY0KWmT5iTN83Fd55Jz7iS9g8qLc+fkfWzGGCMAAAAAAAAAAFBJjNUNAAAAAAAAAAAQrhiiAwAAAAAAAADgA0N0AAAAAAAAAAB8YIgOAAAAAAAAAIAPDNEBAAAAAAAAAPCBIToAAAAAAAAAAD4wRAcAAAAAAAAAwAeG6AAAAAAAAAAA+OCwugGgLtu6datatmyp5OTkoLze9OnT9fbbbysrK0t2u92v56xevVolJSXHfVznzp3VunVrr7XCwkLVq1dPNpvN43hZWZlffezevVtbtmzRwIEDPY7v2LFDbdu2Pe7z/ZGXl6c33nhDl156qRo3buxR++GHH7Rjxw717dtXsbGxQfl5AIDokZubK7vdrqSkpGo/l+z2jewGAARbQUGBnnjiCfXq1UsXXnhhjV6D7PaN7EZUMwC8euCBB0y/fv2Ou61fv97nawwYMMBcdNFFPus///yzee6558xzzz3nV0/Tp083ksyyZcv8fh8nnXSS6dChgzn33HN9bvHx8ebZZ5/1+Rr33HOP6dChgyksLHQfKywsNG3atDEvvfTScXt47bXXTPPmzT2OlZaWmubNm5upU6f6/V6qMn78eBMTE2Peeecdk5+fb5xOp/n999+NMcZcfPHFpmXLlubgwYM+n19eXm7OPfdc8/zzz3scf/HFF02nTp3Mtm3bTGFhofntt9+8Pt9msxlJ1dqefPLJoLx3AIAx33zzjdmyZYvZtm1bldvXX39tsrOzzeHDhyu9xldffWUkmbVr13ocnzZtmklOTjaHDh2qdl9kt29kNwCgpufdpaWlprCw0JSXl3scLy8vNyeddJK58sorK/2s8vJyU1hYaEpLS6vsiez2jexGNONKdMCHH3/8UR07dtSDDz7o8zEtWrRQUVGR19rhw4e1Zs0aLV26VF9++aVefvllFRQU6LffftPu3bv1ww8/6MCBA2rRooW6du2qjIwM1atXT5JUWlqqmJgYxcR4rrh03XXXacmSJSooKPD6M10ul+Lj4z2OxcXF6e6779bIkSN9vo+2bdtWel5Fb7/9tv70pz+5+5OkhQsX6ueff9b777+v4cOH+3yuJCUkJFR6/ddff12//fabkpKS9NJLL7mPt2nTRuedd16Vr3es5cuXa+bMmTrhhBN06aWXKjExUWVlZerWrZsmT56sFStWKDExUZ06dZIklZeXKzk5Wd999537NVatWqUNGzZozpw5Hq9dv359bd26VS1atNDEiROVlZWltWvX6oQTTvB4nMPh0CuvvKKLL77Yfezf//63rrjiCrVr165Sz507d67y9xwAUD3jxo3TmjVrFBcX5z5WUlKi/Px8jyulysrKVFRUpPXr1+uMM87weI2jOZeYmOhxfPXq1brmmmuq/GYZ2U12AwCqr6bn3WvWrNH555/v8zmvv/56pSu6j9qwYYPOPvtsspvsBqrH6ik+EK6uv/56k5CQYBo3buxzk2TWrFnj9fnPPfecSUpKMi6Xy7z66qsmJSXFPPbYY+bZZ581jzzyiKlXr57Xq+CMMeaFF14wMTExJikpySQnJ/u12e12069fv0qv1b59e78+nX3xxRe99rJmzRojyXz11VfuYwUFBaZFixZmzJgxpmXLlj6fW1RUZIqLi80777xj2rRpY8rKykxxcbEpKSkxnTp1Mj169DDXX3+9uf766821115rJJkFCxYc59+Mp6VLl5p69eqZkSNHmrKyMtO8eXMzf/58Y4wxX3/9tUlOTjY33nijyc3NNTfccIO5/PLLzW+//WZ++eUXj9fp06ePefDBB40xxuTl5bmPf/zxx0aSKSkpMQUFBWbQoEFmy5YtlfqoV6+eeffdd937H374oZFknnrqKVNUVOTejl710L59e3efAIDgqHjlljHGvPnmm0aSyc/Pdx/buXOnx35FP/30U6XMO3jwoImNjTUjR440U6dO9dgee+wx9+PIbv+R3QCAo2p63u1yucy+fftMXl6e+f33383+/fur3A4dOmScTqfZv3+/KSkpMcaQ3dVBdgPGMEQHfBg5cqQZO3ZslY+RZLKysrzW0tLSTI8ePYwxf5zEt2/f3l374osvTGxsrM/XdTqd5scffzS//PKL2blzp7nmmmtMdna22bt3r3v75ptvzFVXXWW++OIL88svv5hvv/3WfPvtt5Veq3379mbu3LkmPz/f55aamuozkC+77DL3+zhq1KhR5rTTTjNFRUXm448/NomJiV6/6jZ8+PBKf2m45JJLzEMPPWQaN25sOnbs6P4LzLx580zz5s2Ny+Xy+ftyrOLiYjNixAgzfvx4c+jQIfPmm2+aW265xcydO9cYY8ySJUvMsGHD3K+5du1ac9ttt5mysjKP11m0aJHp0KGDKS4uNmvWrDFJSUnur/IfDfPffvvNfPrpp+bJJ580l112mbn77rs9XiMpKckd5gUFBaZjx46V3ntCQoL58ccf3f9eXnjhBb/fKwCgar///rtp1aqVWbx4sfuYtyF6enq66d69u8fXvw8cOGA2btxo/vvf/xpJ5u233zZffvmlKSgoMP/5z39MkyZNzPDhwz22Xr16mfr167tfg+z2D9kNAKgo0PNuY4wZMmSIqVevnmnWrJnXLTY21vz73/+u9Dyy2z9kN/AHhuiAD7fffrs59dRTj7t5uxJ95cqVRpLPIfq2bduMJHPkyJEqeygtLTVXX321kWSmT5/uUfv0009N8+bNzYknnmhWrlzp8zVat2593NBo06aNWbhwYaXjn3zyiZHk8Un7tGnTTP369c3XX3/tPvbiiy8au91u7r77bo8wzs3NNQcOHDDnnnuuSU1NNU6n06xdu9bExcWZtWvXmoEDB5q77rrL7N+/35x00kl+rw3vzY4dO4wkj75atWrl82qGo1crrlmzxiQnJ5v//ve/Jj8/3wwYMMD8+c9/Nh988IF5+OGHTf/+/d1BfPQT/EcffdT873//8/j5ycnJ5t133zVlZWXmqquuMpLMpEmTjDHGHDp0yLRr187MmDHD/XjCHACC74477jAJCQnm888/N8ZUHqIvXrzYSDLLly/3eN7SpUu9Xi32+eefm1NPPdU89NBDlX7W0eH6schu/5HdAIBAzruPGjZsmBk1apTP+rnnnmueeuopn3Wy239kN6IZQ3TgGIcPHz7ujUYqKisrM4WFhe5PdsvKyszZZ59tmjZt6jFEb9u2rdm1a5fZtWuXWb9+vZFktm3bZnbt2mV+/PFH88MPP3i87qFDh8zAgQNNbGysz68f5eTkmAEDBhibzWbGjx/v7qGik046ydjtdiPJ2Gw2Y7fbvW7z5s3zeF5hYaHp2rWrSUpKMv369TPFxcXmlltuMfXq1TMfffRRpZ/z+uuvm3r16pm2bduaTZs2ebyPuLg4k5qaal555RVjjDHbt283xhiza9cu07RpU9OxY0czaNAgf3/LvdqzZ4+R5HFVQKNGjczHH3/s8bijX5M7egXipEmT3MOS+Ph406BBA7Nr1y4zYcIEM2zYMPPggw9Wel1j/vjvpOLXz46G+eLFi03Tpk3NBx98YJo1a2YyMzPNeeedZ0aOHOnxfMIcAIKvtLTU9O7d27Rr1844nU6PIfq3335rkpKSzL/+9a9Kzzty5IgpLi52L+eyZcsWc/jwYfP888+bE044wWzcuNFcddVVpqCgwP2cWbNmmVatWnm8DtldPWQ3AESvQM+7K7ryyiurzEtJXq9EN4bsri6yG9HM8+4JANSpUyc5HA7ZbDY5HA73dux+xS0xMVELFy6UJM2aNUvff/+9brrpJo/X3blzp7p06aIuXbrooosukiSlpaWpS5cu6ty5s8eNMQ4dOqSzzz5ba9eu1fvvv699+/ZVutHKN998o169eum2227T6NGjlZOTI5fLVen97NmzR0uWLFHjxo316aefqrS01Ot24403ejzvlltu0c8//6yxY8dK+uOmam+88YY++OADvf3223r//ffdj506daq++eYbffnll7r00kvVuXNnd+3111/XkSNHdPjwYf3zn/9UVlaWOnbsKEk6ePCgkpKS9MMPP6hevXrau3dvtf993XTTTTrzzDPdv39DhgxRp06dtHnz5ko3iKno6E1mxowZo88//1xFRUU677zz9PDDD6tVq1Z69NFHtWTJEt1+++2SpI0bN+q1117T5MmTlZ6erkaNGmnZsmWVXjcjI0NbtmxRv379NHz4cD3++OPavHmzrr322mq/NwBA9djtdv3nP//RKaecouLiYo/am2++qVNOOUX//ve/Kz3P4XB43HTKZrMpMTFRGzZs0O233662bdtq06ZNHjcLKykpUUJCgnuf7PYf2Q0ACPS8u6LXXntN5eXlPvPSGKNx48ZVeh7Z7T+yGxA3FgWOVVxcbH788Udjt9vdx7Zt22YaN25sSkpKTFFRkcc6qsb8cVOTo0uzfPHFF2bx4sVm5syZPpdzMeaPr3Id+3XyitavX2+2bt1qjDHm/vvvN0lJSWb//v3u+lVXXWVOPvlk91Vx3j7F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9NFHzZ/+9Cdz8OBB069fP9OqVSvz+++/ezxmxIgRZvjw4b5+S81rr71mmjVr5t7fs2ePkWTWrFnj8bh+/fqZUaNG+Xydqnz77bdGktm4caP7WHx8vPn44489HrdmzRojyeTn5xtj/ri7+pQpU0x2drb77u8lJSXmX//6l0lMTDSnnnqq2bBhg/u5iYmJpmvXrsbhcJjZs2e7Xzc2NtZIqtb21FNP1ei9AgD8s3TpUiPJHDhwICiv991335nrrrvODB061DgcDnPXXXe5a2R39ZHdABC9gnHefc4555hJkyb59fMmTpxounfvbmbNmuU+RnZXH9mNaMYQHaimo3/gH899991nOnbs6H7O0QAsKyszf/vb39wh88svv5gbbrjBPPLII+7nHj582Hz++eemrKzM77727t1rioqKatyvL4888og5++yzzfbt202PHj3M5s2bKz1m6NCh5q9//avP1ygoKDA7d+5075eVlZnc3FxTWloaUG8VlZSUmJ9++sm4XK6gvN7cuXPNo48+aoqLiz2Of/HFF6Zv375mxIgRHv3bbDbz7rvv+v367du39/jLAAAg+BYtWmQkVfqgu6aKiopMSkqKOfXUU82NN95oDh486K6R3dVHdgMAfAk0C491+PDhSq9Jdlcf2Y1oZjOmGndYABDVjDHVWjstmuzYsUPNmjU77k3mAAAIJbLbN7IbABCOyG7fyG5YiSE6AAAAAAAAAAA++L5VLwAAAAAAAAAAUc6yIfqLL76o1NRU1a9fX/3799eOHTskSTk5OUpLS1OjRo2UmZnpcWfhqmoAAKB2kd0AAEQWshsAgOCwZIj+ww8/aNKkSXrrrbe0detWtWnTRiNHjpTL5dLgwYPVo0cPZWdna+vWrVqwYIEkVVkDAAC1i+wGACCykN0AAASPJUP0jRs3qnfv3urevbtSU1N13XXX6dtvv9WKFSvkdDo1Y8YMtW/fXlOmTNH8+fMlqcoaAACoXWQ3AACRhewGACB4HFb80E6dOmn16tXauHGjTj75ZD311FMaMGCANm/erN69eysxMVGS1K1bN23dulWSqqx543K55HK53Pvl5eX6/fff1bhxY+5yDACICMYY5efn66STTlJMjLW3MSG7AQA4PrKb7AYARBZ/s9uyIfqVV16p7t27S5LatWun9evXa9q0aWrXrp37cTabTXa7Xbm5ucrL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ALAGNycDACAycN4NhA+G6ABqpEuXLgHVAQCANbg5GQAAkYHzbiB8MEQHUGNZWVnVOg4AAKzFzckAAIgsnHcD4SHgIfrTTz8tp9MZjF4ARKBmzZpVuQ8g/JDdQHTi5mRA5CK7gejGeTdgPZsxxvj74J9++knff/+9BgwY4D7WunVr3XLLLbLZbLLZbCovL9eRI0c0efLkWmm4pvLy8pScnCyn06mkpCSr2wHqlIpXr/FpOBA8wcgushvAUf5cbU6OA4Ehu8luoLZw3g3UDn+zy1GdF/3ll190+eWXq3PnznrxxRf122+/6bzzztOSJUvUo0cPSdI777yjyy67LLDuAQBAUJDdAI6aM2eORo8eXWUdgPXIbgDeMDgHrFWtIbokXX755Ro5cqQuvfRS1a9fXy+++KKuuuoqvfDCC5Kkrl276vnnnw96owDC09ChQyvtv/LKKxZ1A8AbshuAxM3JgEhCdgMAEF78XhM9Ly9PkmSz2XThhRfq0ksv1d69e9WhQwePx9lstuB2CCCs7du3r8p9ANYhuwEci5uTAeGN7AYAIDz5fSV6//79VVZWpmbNmumaa66RJI0fP17PPvssAQ5EKV9rq6anp3MyDoQBshuAN82aNfP40JubkwHhg+wGACA8+T1Ef//99/X8889r5syZaty4sTZs2KCYmBj17dtX5eXlstvtkiRjjOx2u/Lz85WYmFhrjQOwVk5OznHrfC0csBbZDcCbV155xeODcJZhA8IH2Q0AQHiyGWNMdZ6Ql5enzMxMnXDCCZoxY4aGDRumq666Sueee65iYmJUXl4ul8ul1q1b11bPNcJdwoHg8nUVekVcjQ4EJljZRXYDOFbFHCevgeAhu8luoLaQ3UDt8De7qn1j0Xr16mnr1q1699139dBDD6l58+a64IILlJycHFDDACLLnDlzNHr06CrrAMID2Q2gopkzZ1bav/322y3qBoA3ZDeAio69iI0lVIHQ83uI/sILLyg+Pl7GGH3//fd69dVXtWTJEt1222167733PB575MgRXXXVVapXr17QGwYQHo63VAtLuQDWI7sBePP2229X2meIDoQHshsAgPDk9xB91apVSkhIkCTt379fN998s+x2u1atWqXk5GQdXRXGGKOysjJddtllhDlQx2VlZXld1oVPxIHwQHYDONZFF13k8/iqVatC3A2AY5HdAI7l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0yeWlpZqypQpuvfee93Hpk+frtmzZ+u2227zOA4AAKzz5z//WQkJCapXr54SEhIq/fqkk07S3/72NzVs2NDqVgEAiHpnnHGGNm/e7HFs9OjRSkhIUEzMH9fBxcTEqF+/frr44outaBFAiF166aWaOXOmjDGy2Wy69NJLrW4JiDp+X4n+xhtvaMqUKe59m82mZ5991uMx9913n5544gnNnz8/eB0CAICAbNq0SQMHDtS5556rrl27qk2bNmrYsKFiYmKUn5+vWbNm6ZZbbrG6TQAAIMnpdFY69vzzz6tRo0ZKTk5WcnKyTjjhBK5EBaLMxx9/rKysLH388cdWtwJEJb+vRC8sLNTnn3/u3rfb7XI4/t/T9+/fr+nTp2vBggV66aWXgtslAACosaSkJI0aNcq9n5WVpf379+tvf/ubJOmcc87R2LFjrWoPAABUEBsbqy+++EJLlixReXm5Zs6cqfj4eE2aNMnjcYmJiSotLfU4LwcAALXD7yvRzz//fOXk5Oi9997TG2+8oQULFujQoUO66aab1LNnT3Xt2lWFhYX68ssvNWDAgNrsGQAAVIPNZnP/+tVXX1VCQoLGjx+vHTt2SJKaNm2qQYMGWdQdACt8+umnGjp0qD799FOrWwHgxfbt23Xw4EG9+uqrkv5flg8fPlwjR47UPffco/HjxzNABwAgRPweordq1UoHDhzQwoUL9c4772jDhg2y2+0699xz9dxzz2nv3r168skntWPHDl155ZW12TMAADgOY4wmTpyo3bt3u4/dfffdmjRpkk444QQ99thjGjZsmEpLS9W3b1/NnTvXwm4BhFJxcbFmzJihffv2acaMGSouLra6JQBeXHzxxWrcuLHHsXXr1mnAgAFatWqVRV0BABCd/B6iS1KbNm00b948LVy4UE899ZQaNGigv//97+rWrZtmz56tm2++WXfffTdrswEAYLHc3Fxt375dZ5xxhvbv36/XXntNvXv31rp169S1a1ddffXVatSoke644w6rWwUQYosXL9bBgwclSQcPHtSSJUss7giAJOXn52vhwoUqKiry+ZjGjRtr+PDhMsaEsDMAAFCtIfqJJ56o3Nxc937Fr4ePHj1a3333na655hr16dMneB0CAIBqS0lJ0bJly7R37149++yzmj17tu644w5t2bLF/ZhZs2appKTEwi4BhNru3bu1ZMkS9wDOGKMlS5Z4fGsFgDV2796tO+64Q0eOHLG6FQBhKD093b0BCL1qLaBWv359nXPOOYqLi5MxRr/++qtSU1Pd9eLiYv3f//2f0tLSdOaZZwa7VwAAUE1xcXH661//KqfTqUaNGik2NlbSHzcMz8nJ0X/+8x+LOwQQKsYYzZ492+fxxx57zOMiGQChdfrpp2vv3r06/fTTfT6mpKREO3fu5P9VIMocOzhPT09XVlaWJb0A0crvIfq+ffs0b948lZSU+Lx5iTFG27dvZ4AOAEAYsdlsGjVqlI4cOeI+6U5MTNT48ePVq1cvtWzZ0uIOAYTCzp07tWHDhkrHy8rKtGHDBu3cuVNt2rSxoDMAR1U81z5y5EilZVvKysqUkZGh9u3bh7o1AACiml9D9IMHD6pt27a64IILNGTIECUnJ/t8bFlZmRYuXKhrr702aE0CAIDqu/DCC5WYmCibzSZjjC677DKPeklJiZYtW6YxY8ZY1CGAUEpNTVVaWpq+/PJLlZWVuY/b7Xb16NHD4xumAKxljNGIESPcH34fHaZ/9dVXVrYFwAK+lm/hanQgtPwaojdu3Fg7duzQ8uXL9fzzz+uzzz5TYmKiLrzwQsXEeC6rfuTIEZWUlDBEBwDAYldddZUSEhJkjNGKFSv017/+1aPeqVMnvfrqqwzRgShhs9k0duzYSn9PP3qc5SGA8JGRkaGrr77a/YFXaWmpVqxYUenK9IEDB1rRHoAQueCCC45bX716dYi6AaKbzdTgtt4bNmzQpEmT9Ouvv2rp0qXq3LlzbfQWVHl5eUpOTpbT6VRSUpLV7QAAcFzBzK6YmBgdOXJEdrvdfczpdColJUU5OTlVrr9qFbIbqB3z58/XSy+9JGOMbDab/v73v+sf//iH1W0BdUIwsqtx48Y6ePCgx7Fzzz1XCQkJiomJkTFG5eXlOnLkiNasWROMtoOG7AaCy5+biHI1OhAYf7OrWjcWPSotLU2rVq3Syy+/rBYtWtS4SQAAEBqfffaZxwB97969atGihV588UW1bt3aws4AhNrw4cP14osvSvpjiYiMjAyLOwJQkbfB+Nq1ay3oBIDVYmJiVF5eXmUdQGjU+P+24uJivfrqq0pJSfE4XlhYqNmzZwfcGAAACJ5evXq5f11YWKiOHTtK+uPr4vXr17eqLQAW+Mtf/lLlPgBrderUyf3r4uJiXXHFFZUew3k3EB2Ot1QLS7kAoeP3EN3lcrl/XVxcrNjYWG3btk2bNm3Ss88+q9zcXEnSihUrtH379uB3CgAA/FZcXKwzzzxT5eXluuuuu/Tjjz+6a/Hx8XI4avRlNAAAUIuqc979zTffWNUmgBDytVwLy7gAoeX3EL1evXqy2+2y2+1KTk6W3W6Xw+HQjz/+qJdffll9+/bVbbfdplmzZunOO++szZ4BAMBxxMfHa9euXdq9e7fWrl2rTp06KTMzUwUFBbLb7YqNjbW6RQAW8LW2qj9rrgKofdU5777rrrusbhcAgKjh9xC9T58+euKJJ/TYY4+pe/fuHrVrr71WGzdu1BdffKHi4mK1atUq6I0CAAD/2Ww22e12paamas2aNfrvf/+rjz76SKeddpoOHjyoGtxXHECEu/HGGwOqA6h9nHcD8ObYq865Ch0IPb+/y22z2RQbG6vS0lLZbDb38bKyMi1dulRz5szRn//8Z7Vq1Urjxo1jfTYgilS8eo0wB8LTn/70J2VnZ+vTTz9V48aNPbIcQHT47rvvAqoDqH2cdwPwhXNtwFoBL4gaFxennj176vbbb9fmzZuVlpamRx55JBi9AYgAx379Oz09nXAHwkRBQYHGjRtX6fiyZct0+PBhd62srEzFxcV65plnQt0igBDq0KFDlYPyDh06hLAbANXBeTcAANYKaIj+yy+/6L333pMkTZgwQRs2bFC7du1Uv379oDQHAAAC42vZFmOMu2aMUXl5eSjbAmCBZ599tsq1z5999tnQNQPAb5x3AwBgvYCG6A0aNFDjxo1VWFioVatW6dprr9W3336r/v37B6s/AGGsqpuTcTU6YL369etr5syZ7v3i4mL9/vvvOumkk/TSSy951ABEh6ysLK/5TW4D4YvzbgAArOf3jUW9adCggdLS0tS9e3c1atRIQ4cOVUJCgjIyMoLVH4AwVdWVbP7UAYTWu+++q9NPP12XXHKJSktLrW4HAAD4ifNuAACs5/eV6Fu2bNFjjz2msrIyOZ1OSVJ+fr6++OILFRUV6dChQ9qyZYu+/PLLWmsWAAD4zxijkpISXX/99Xr99deVmZmpcePGyeFwcGNRIIodezU6V6ED4YPzbgAAwpPfQ/QVK1YoMTFRklRUVCRJcjqd+uWXXyRJvXr10ltvvaVdu3bpyJEjio2NrYV2AQCAP4qLi+VyuRQXF6e0tDTdc889OvXUU61uC0CYYHAOhCfOuwH4wgfggLX8HqL36dPHY7+4uFhNmjTRCy+84HH8H//4h3777Te1bNkyOB0CCEu+1lStWAdgnYSEBO3YsUOSdOutt3rUiouLVVxcbEFXAACgKpx3A/Dm2HNv7kMGhF6NbyyakJCgzz77rNLx559/PqCGAEQObk4GhLeUlBSvx+Pj4/XFF1+EuBsA4YSr2YDIwHk3AADhIaAbizZp0iRYfQAAgBCx2Wzq0KGD1W0AsIi3q9kAhC/Ou4Ho5iunyW8gtAIaogPAsVevcTUbAAAAAACBu/HGGwOqAwieGi/nAgBHMTgHACAyVHU1G3kOAEB4+e677wKqAwgerkQHAAAAosANN9wQUB0AAIRW+/btA6oDCB6G6AAAAEAU+P777wOqAwCA0OIDcCB8MEQHAAAAosApp5wSUB0AAIRWr169lJSU5LWWnJysXr16hbgjIHoxRAcAAACigM1mC6gOAABCKyYmRvfee6/X2n333aeYGMZ6QKhY+n/bwYMH9emnn+rAgQNWtgEAAPxEdgORi5uTAdGJ7AYi29lnn62uXbt6HOvWrZu6d+9uUUdAdLJsiP7yyy/rlFNO0S233KLU1FS9/PLLkqScnBylpaWpUaNGyszMlDHG/ZyqagCsk56e7t4A1F1kNxDZOnToEFAdQOQhu4G64aGHHvLYf/DBBy3qBIhelgzRDx06pDFjxmjNmjXauHGjnnnmGd15551yuVwaPHiwevTooezsbG3dulULFiyQpCprAKxz7OCcQTpQN5HdQOR79tlnA6oDiCxkN1B3DBkypMp9ALXPkiF6fn6+Zs2apS5dukiSzjjjDOXm5mrFihVyOp2aMWOG2rdvrylTpmj+/PmSVGUNAADULrIbqBuysrKqdRxA5CK7AQAIHkuG6K1bt9bw4cMlSUeOHNH06dN1xRVXaPPmzerdu7cSExMl/bHG09atWyWpyhoAa/i66pyr0YG6h+wGACCykN1A3cB5NxAeLL2x6ObNm9WsWTOtWrVKs2bNUl5entq1a+eu22w22e125ebmVlnzxuVyKS8vz2MDEDzXX399QHUAkYnsBgAgspDdQOQaOXJkQHUAwWPpEL1bt2766KOP1LlzZ1133XVyOByKj4/3eExCQoIKCwurrHkzdepUJScnu7fWrVvX2vsAotEPP/wQUB1AZCK7gch29dVXV+s4gMhHdgORa8eOHQHVAQSPpUN0m82ms846SwsWLNDbb7+tlJQU7d+/3+Mx+fn5iouLq7LmzcSJE+V0Ot3brl27au19ANGoffv2AdUBRCayG4hc+fn5+vXXX73Wfv31V+Xn54e4IwChQHYDkatt27YB1QEEjyVD9NWrVyszM9O973A4JEmnnXaa1q1b5z6+Y8cOuVwupaSkKC0tzWfNm/j4eCUlJXlsAILneDcY4gZEQN1CdgORb8SIEQHVAUQWshuIfAsWLAioDiB4LBmin3baaXrmmWc0b9487dq1S3fddZcuuugiXXLJJXI6nVq0aJEkadq0aerfv7/sdrv69u3rswbAGllZWdU6DiBykd1A5Dv6/2JN6wAiC9kN1A2cdwPhwZIh+kknnaTXXntNs2bNUufOnVVYWKgXX3xRDodD8+bN00033aRmzZrp9ddf17Rp0ySpyhoAAKhdZDcQ+Ro0aKDmzZt7rbVo0UINGjQIcUcAahPZDQBA8NiMMcbqJo61Z88eZWdnq0+fPmratKnftark5eUpOTlZTqeTr5gBQZaenu7+NZ+GA8ETSdlFdgORo2JuH0V+A8ERSdlFdgORhfNuoHb4m12OEPbkt5YtW6ply5bVrgGwxt///nctXrxYw4cPt7oVABYhu4HI4G2AfvQ4J+RAdCG7AQDwnyXLuQCoOw4dOqTFixervLxcixcv1qFDh6xuCQAAeHHbbbcFVAcAANY49kNwXx+KA6g9DNEBBGTy5MkqLy+XJJWXl+vee++1uCMAAODNpk2bAqoDAAAA0YohOoAay87O1ldffeVxbMuWLcrOzraoIwAA4MuZZ54ZUB0AAIReVUuxAQgdhugAaqS8vFwPPvig19qDDz7ovjodAACEh3//+98B1QEAQGgdb1DOIB0IHYboAGpk/fr1ysvL81rLy8vT+vXrQ9wRAACoyvLlywOqAwAAANGKITqAGunVq5eSkpK81pKTk9WrV68QdwQAAKrSt2/fgOoAAABAtGKIDqBGYmJifN5E9L777lNMDH+8AAAQTq699tqA6gAAILSysrICqgMIHqZcAGrs7LPPVteuXT2OdevWTd27d7eoIwAA4MtLL70UUB0AAIRet27dqnUcQO1giA4gIA899JD7qvOYmBifNxsFAADWuvTSSwOqAwCA0CoqKtKWLVu81rZs2aKioqIQdwREL4boAALSsGFDDR8+XDExMRo+fLgaNmxodUsAAAAAAES8W2+9NaA6gOBhiA4gYC+++KLKy8v14osvWt0KAAAAAAB1whNPPBFQHUDwMEQHEJD09PQq9wEAQHjg5mQAAESWevXq+Vz7/Mwzz1S9evVC3BEQvRiiAwAAAFHC16CcAToAAOHJ19Xms2bNCm0jQJRjiA6gxnxddc7V6AAAhCeyGwCAyDJhwoRqHQdQOxiiA6iR451sczIOAEB4mTx5ckB1AAAQWsXFxfr888+91j7//HMVFxeHuCMgejFEBwAAAKLAmjVrAqoDAIDQyszMDKgOIHgYogMAAABR4LzzzguoDgAAQuvxxx8PqA4geBiiA6iR492AjBuUAQAQXh566KGA6gAAILQSEhLUs2dPr7XevXsrISEhxB0B0YshOoAa8zUoZ4AOAEB4atWqVbWOAwAAa5111llej59xxhkh7gSIbgzRAQAAgChQUFCg3bt3e63t3r1bBQUFIe4IAABUpbS0VM8884zX2jPPPKPS0tIQdwREL4boAAJy7FXnXIUOAEB4uu666wKqAwCA0Fq0aFFAdQDBwxAdQMCysrLcGwAACE8vvPBCQHUAABBaI0aMCKgOIHgYogMAAABRoH79+j7XPk9NTVX9+vVD3BEAAKiKw+HQqFGjvNZuvvlmORyOEHcERC+G6AAAAECU8LUm+s6dO0PcCQAA8MewYcOUmJjocSwxMVFDhw61qCMgOjFEBwAAAKLA2rVrA6oDAABrzJ07t8p9ALWPIToAAAAQBSZNmhRQHQAAWCM1NVVdunSRJHXp0kWpqakWdwREH4boAAI2evRopaena/To0Va3AgAAAABAnZOTk+PxTwChxRAdQEB27tzpEeasqQoAAAAAQPCkp6dXuQ+g9jFEBxCQm266qcp9AAAQHp577rmA6gAAAEC0YogOoMaWLl2qwsJCj2OFhYVaunSpRR0BAABfbrjhhoDqAAAg9Hxddc7V6EBoMUQHUCOlpaV65plnvNaeeeYZlZaWhrgjAABQlXvuuSegOgAACK0333wzoDqA4GGIDqBGFi1aFFAdAACE1sMPPxxQHQAAhNbs2bMDqgMIHoboAGpkxIgRAdUBAEBoLViwIKA6AAAIrbFjxwZUBxA8DNEB1IjD4dCoUaO81m6++WY5HI4QdwQAAKqyadOmgOoAACC0Lr/88oDqAIKHITqAGhs2bJjX40OHDg1xJwAA4HhmzZoVUB0AAIReVlZWtY4DqB0M0QHUGHcJBwAgctx2220B1QEAQOhx3g2EB4boAGrkrbfeCqgOAABCq23btgHVAQBAaN10000B1QEED0N0ADXCV8IBAIgsXIkOAEBk+eabbwKqAwgehugAaoQTcQAAIgsfgAMAEFlOO+20gOoAgochOoAaGTJkSEB1AAAQWiznAgBAZJk7d25AdQDBwxAdQI1xl3AAACLHlVdeGVAdAACEXrdu3ap1HEDtYIgOAAAARIHS0tKA6gAAILSKioq0ZcsWr7UtW7aoqKgoxB0B0YshOoCAHHvVOVehAwAAAAAQuFtvvTWgOoDgsWyI/vbbb+vkk0+Ww+FQr169tG3bNklSTk6O0tLS1KhRI2VmZsoY435OVTUAAFC7yG4AACIL2Q1EtieeeCKgOoDgsWSI/sMPP+i6667TtGnTtGfPHrVp00Y33HCDXC6XBg8erB49eig7O1tbt27VggULJKnKGgDrpKenV7kPoG4gu4HIN3To0IDqACIL2Q1Evnr16qldu3ZeayeffLLq1asX4o6A6GXJEH3btm2aMmWKrrrqKjVr1kw333yzsrOztWLFCjmdTs2YMUPt27fXlClTNH/+fEmqsgYAAGoX2Q1Evs8++yygOoDIQnYDka+8vFx79uzxWtu9e7fKy8tD3BEQvRxW/NBBgwZ57G/fvl2nnHKKNm/erN69eysxMVHSH3ca3rp1qyRVWQNgDV9Xnaenp7M2OlDHkN1A5Nu5c2dAdQCRhewGIt/atWtVUlLitVZSUqK1a9fqvPPOC3FXQHSy/MaiJSUlmj59uv71r38pLy/P42sqNptNdrtdubm5Vda8cblcysvL89gABM+wYcMCqgOIXGQ3EJkaNmwYUB1A5CK7gcg0efLkgOoAgsfyIfo999yj+vXr65///KccDofi4+M96gkJCSosLKyy5s3UqVOVnJzs3lq3bl1r7wGIRnv37g2oDiBykd1AZCooKAioDiBykd0AAATG0iH6hx9+qLlz52rJkiWKjY1VSkqK9u/f7/GY/Px8xcXFVVnzZuLEiXI6ne5t165dtfY+AACIFmQ3ELmSkpICqgOITGQ3AACBs2yI/uOPP2r48OF6+umn1alTJ0lSWlqa1q1b537Mjh075HK5lJKSUmXNm/j4eCUlJXlsAILnww8/DKgOIPKQ3UBk+/333wOqA4g8ZDcAAMFhyRC9qKhIgwYN0pAhQ3TZZZepoKBABQUFOu+88+R0OrVo0SJJ0rRp09S/f3/Z7Xb17dvXZw1A6C1fvjygOoDIQnYDABBZyG4AAILHYcUP/eCDD7Rt2zZt27ZNzz77rPv4Tz/9pHnz5ikjI0OZmZkqKyvTJ5988kejDofPGoDQ83U1ir91AJGF7AYAILKQ3QAABI8lQ/QhQ4bIGOO11rZtW3333XfKzs5Wnz591LRpU4/n+aoBCK0DBw4EVAcQWchuAAAiC9kNAEDwWDJEP56WLVuqZcuW1a4BCJ2DBw8GVAdQt5DdAABEFrIbAAD/WXZjUQCRbcmSJQHVAQAAAAAAgEjAEB0AAAAAAAAAAB8YogMAAAAAAAAA4ANDdAAAAAAAAAAAfGCIDgAAAAAAAACADwzRAQAAAAAAAADwgSE6gBo5//zzA6oDAIDQio2NDagOAABC69577w2oDiB4GKIDqJHPP/88oDoAAAitI0eOBFQHAACh9cUXXwRUBxA8DNEB1Mjhw4cDqgMAAAAAAN/ee++9gOoAgochOgAAAAAAAAAAPjBEBwAAAAAAAADAB4boAGpkxowZAdUBAEBoDRgwIKA6AAAIrQkTJgRUBxA8DNEB1Mjq1asDqgMAgND68MMPA6oDAIDQeuyxxwKqAwgehugAaiQ2NjagOgAACK1+/foFVAcAAKF14oknBlQHEDwM0QHUyJtvvhlQHQAAhNYnn3wSUB0AAIRWvXr1AqoDCB6G6AAAAAAAAECY+fnnnwOqAwgehugAAAAAAABAmOnYsWNAdQDBwxAdQI2ceuqpAdUBAEBoDR8+PKA6AAAIrRtvvDGgOoDgYYgOoEa2b98eUB0AAITW4sWLA6oDAIDQmjBhQkB1AMHDEB0AAAAAAAAIM8aYgOoAgochOgAAAAAAAAAAPjBEBwAAAKLAlVdeGVAdAAAAiFYM0QHUyIoVKwKqAwCA0Hr99dcDqgMAgNDKysoKqA4geBiiA6iRevXqBVQHAAAAAABV8zUoZ4AOhBZDdAA1snv37oDqAAAAAACgaunp6dU6DqB2MEQHUCPXXHNNQHUAAAAAAODb8QblDNKB0GGIDgAAAAAAAACADwzRAQAAAAAAAADwgSE6gBq59tprA6oDAAAAAADfnn766YDqAIKHITqAGlm4cGFAdQAAAAAA4NuKFSsCqgMIHoboAAAAAAAAQJh55513AqoDCB6G6AAAAAAAAAAA+MAQHQAAAAAAAAAAHxiiA6iRrKysgOoAAAAAAMC3F154IaA6gOBhiA6gxnwNyhmgAwAAAAAQmOuuuy6gOoDgYYgOoMbS09OrdRwAAAAAAPjn9ttvD6gOIHgYogOokeMNyhmkAwAAAABQczNnzgyoDiB4GKIDAAAAAAAAAOADQ3QAAAAAAAAAAHxgiA4AAAAAAACEmZ49ewZUBxA8DNEBAAAAAACAMPP5558HVAcQPAzRAQAAAAAAAADwgSE6AAAAAAAAAAA+MEQHAAAAAAAAAMAHS4foBw8eVLt27bRjxw73sZycHKWlpalRo0bKzMyUMcavGoDQysrKCqgOIDKR3QAARBayG4hcnHcD4cOyIfqBAwc0aNAgjyB3uVwaPHiwevTooezsbG3dulULFiw4bg2ANXwFNkEO1E1kNwAAkYXsBiIf591AeLBsiH711Vfr6quv9ji2YsUKOZ1OzZgxQ+3bt9eUKVM0f/7849YAWCM9Pb1axwFENrIbAIDIQnYDkY/zbiA8WDZEnzdvnsaOHetxbPPmzerdu7cSExMlSd26ddPWrVuPW/PG5XIpLy/PYwMQPMcLbAIdqHvIbgAAIgvZDUQ2zruB8GHZEP3kk0+udCwvL0/t2rVz79tsNtntduXm5lZZ82bq1KlKTk52b61btw7+mwAAIIqQ3QAARBayGwCA4LD0xqLHcjgcio+P9ziWkJCgwsLCKmveTJw4UU6n073t2rWr1voGACBakd0AAEQWshsAgOoLqyF6SkqK9u/f73EsPz9fcXFxVda8iY+PV1JSkscGAACCi+wGACCykN1A5HjwwQcDqgMInrAaoqelpWndunXu/R07dsjlciklJaXKGgAAsAbZDQBAZCG7gchx7733BlQHEDxhNUTv27evnE6nFi1aJEmaNm2a+vfvL7vdXmUNAABYg+wGACCykN0AAFSfw+oGKnI4HJo3b54yMjKUmZmpsrIyffLJJ8etAQAAa5DdAABEFrIbAIDqs3yIbozx2B8yZIi+++47ZWdnq0+fPmratKlfNQAAEBpkNwAAkYXsBgAgMJYP0b1p2bKlWrZsWe0aAACwBtkNAEBkIbsBAPBfWK2JDgAAAAAAAABAOGGIDqBGLrjggoDqAAAAAAAAQCRgiA6gRlavXh1QHQAAAAAAAIgEDNEBAAAAAAAAAPCBIToAAAAAAAAAAD4wRAdQI0OGDAmoDgAAAAAAAEQChugAauStt94KqA4AAAAAAABEAoboAAAAAAAAAAD4wBAdAAAAAAAAAAAfGKIDAAAAAAAAAOADQ3QAAAAAAAAAAHxgiA4AAAAAAAAAgA8M0QEAAAAAAAAA8IEhOgAAAAAAAAAAPjBEBwAAAAAAAADAB4boAAAAAAAAAAD4wBAdAAAAAAAAAAAfGKIDAAAAAAAAAOADQ3QAAAAAAAAAAHxgiA4AAAAAAAAAgA8M0QEAAAAAAAAA8IEhOgAAAAAAAAAAPjBEBwAAAAAAAADAB4boAAAAAAAAAAD4wBAdAAAAAAAAAAAfGKIDAAAAAAAAAOADQ3QAAAAAAAAAAHxgiA4AAAAAAAAAgA8M0QEAAAAAAAAA8IEhOgAAAAAAAAAAPjBEBwAAAAAAAADAB4boAAAAAAAAAAD4wBAdAAAAAAAAAAAfGKIDAAAAAAAAAOADQ3QAAAAAAAAAAHxgiA4AAAAAAAAAgA8M0QEAAAAAAAAA8MFhdQMAAADAsYwxKi4utrqNqFNUVGR1C3VCQkKCbDab1W0AQEiR3dYgu4OD7MbxMEQHAABA2CkuLtbFF19sdRtRh9/z4FixYoXq1atndRsAEFJktzX4PQ8OshvHwxAdUYFPxK3BJ+LBwSfiAAAAAAAA1mGIjqjAJ+LW4Pc8OPhEHEA0SkhI0IoVK6xuo07xJ5f5PQ+OhIQEq1sAgJAju4OP7A4dshvHwxAdAAAgAHzbCZFixYoVVZ6McxIePPyZUDv4dh4Q3mw2Gxf/BFlWVpbS09OrrAMIDYboYYYT8dphjNGbb75pdRt1zuWXX+6zxu938BhjWBqnFnAijmDh206oK/jvGOGOb+chWDjvRiTx9SH4ihUrOE9E2KtL590RN0TPycnRddddp++//1433HCDHnvssTrzL0PiRBx1R1UDdiAccCIeOnU9u40xVrcAAFGBP29Dp65nd1FRkQYOHGh1G0BAmB0hErz//vtKTEy0uo2giLG6gepwuVwaPHiwevTooezsbG3dulULFiywuq2g4i+GABAa/HkbGtGQ3S6Xy+oWACAq8OdtaJDdAIBgqUt/3kbUEH3FihVyOp2aMWOG2rdvrylTpmj+/PlWtxVUdek/LgAIZ/x5GxrRkN0AANQlZDcAAJVF1HIumzdvVu/evd1fA+jWrZu2bt3q9bEul8tjQOJ0OiVJeXl5td9oAPLy8lRaWmp1GwBQ5+Xl5clut1vdRpWOZlYkXzUfDdntcrnIbgAIAZfLFfaZQHaT3QCA/6cuZXdEDdHz8vLUrl07977NZpPdbldubq4aNWrk8dipU6fqgQceqPQarVu3rvU+AQDhr23btla34Lf8/HwlJydb3UaNkN0AgGBp0aKF1S34jewmuwEAdSu7I2qI7nA4FB8f73EsISFBhYWFlcJ84sSJGjdunHu/vLxcv//+uxo3blynbogChIO8vDy1bt1au3btUlJSktXtAHWGMUb5+fk66aSTrG6lxshuIDyR3UDtILvJbqC2kN1A7fA3uyNqiJ6SkqKcnByPY/n5+YqLi6v02Pj4+ErB37Bhw9psD4h6SUlJhDkQZJF6FdtRZDcQ3shuIPjI7oa12R4Q9chuIPj8ye6IurFoWlqa1q1b597fsWOHXC6XUlJSLOwKAAD4QnYDABBZyG4AACqLqCF637595XQ6tWjRIknStGnT1L9//7C/MRwAANGK7AYAILKQ3QAAVBZRy7k4HA7NmzdPGRkZyszMVFlZmT755BOr2wKiXnx8vO67775KX+UEALIbCE9kNwBfyG4gPJHdgLVsxhhjdRPVtWfPHmVnZ6tPnz5q2rSp1e0AAIDjILsBAIgsZDcAAP9PRA7RAQAAAAAAAAAIhYhaEx0AAAAAAAAAgFBiiA4AAAAAAAAAgA8M0QEAAAAAAAAA8IEhOgAAAAAAAAAAPjBEBwAAAAAAAADAB4boAAAAAAAAAAD4wBAdAAAAAAAAAAAfGKIDAAAAAAAAAOADQ3QAAAAAAAAAAHz4/wD0oFP83kfkgQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1500x500 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 确保你的数据集中包含列：最低交易价格, 平均交易价格, 最高交易价格  \n",
    "columns = ['最低交易价格', '平均交易价格', '最高交易价格']  \n",
    "  \n",
    "# 使用箱线图进行异常值检测（虽然这里是用IQR方法，但箱线图仍然是一个很好的可视化工具）  \n",
    "plt.figure(figsize=(15, 5))  \n",
    "  \n",
    "# 绘制箱线图  \n",
    "for i, column in enumerate(columns, 1):  \n",
    "    plt.subplot(1, 3, i)\n",
    "    plt.ylim(0,800)\n",
    "    sns.boxplot(y=df[column])  \n",
    "    plt.title(f'{column} 箱线图')  \n",
    "plt.tight_layout()  \n",
    "plt.show()  "
   ]
  },
  {
   "cell_type": "raw",
   "id": "be6b0c35",
   "metadata": {},
   "source": [
    "# 确保你的数据集中包含列：最低交易价格, 平均交易价格, 最高交易价格  \n",
    "columns = ['最低交易价格', '平均交易价格', '最高交易价格']  \n",
    "plt.figure(figsize=(15, 5))  \n",
    "# 使用IQR进行异常值检测  \n",
    "iqr_outliers = []  \n",
    "  \n",
    "for column in columns:  \n",
    "    Q1 = df[column].quantile(0.25)  \n",
    "    Q3 = df[column].quantile(0.75)  \n",
    "    IQR = Q3 - Q1  \n",
    "    lower_bound = Q1 - 1.5 * IQR  \n",
    "    upper_bound = Q3 + 1.5 * IQR  \n",
    "      \n",
    "    # 标记异常值  \n",
    "    outlier_mask = (df[column] < lower_bound) | (df[column] > upper_bound)  \n",
    "    iqr_outliers.append(outlier_mask)  \n",
    "      \n",
    "    # 打印异常值范围（可选）  \n",
    "    print(f\"Column {column} IQR outliers range: ({lower_bound}, {upper_bound})\")  \n",
    "# 合并所有列的异常值标记  \n",
    "iqr_outliers_combined = np.any(np.column_stack(iqr_outliers), axis=1)  \n",
    "  \n",
    "# 创建一个标记异常值的DataFrame  \n",
    "df_with_iqr_outliers = df.copy()  \n",
    "df_with_iqr_outliers['是IQR异常值'] = iqr_outliers_combined  \n",
    "  \n",
    "# 打印异常值数据  \n",
    "print(\"IQR异常值数据：\")  \n",
    "print(df_with_iqr_outliers[df_with_iqr_outliers['是IQR异常值']])  \n",
    "# 可视化异常值（使用散点图）  \n",
    "plt.figure(figsize=(15, 5))  \n",
    "  \n",
    "for i, column in enumerate(columns, 1):  \n",
    "    plt.subplot(1, 3, i)  \n",
    "    sns.scatterplot(x=df.index, y=df[column], hue=df_with_iqr_outliers['是IQR异常值'], palette=['blue', 'red'])  \n",
    "    plt.title(f'{column} 散点图（IQR异常值标记）')  \n",
    "    plt.axhline(y=df[column].mean(), color='green', linestyle='--', label='均值')  \n",
    "    plt.legend(labels=['正常', 'IQR异常值', '均值'])  \n",
    "plt.tight_layout()  \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "8100f45d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "异常值行数据:\n",
      "        农产品市场所在省份                           市场名称映射值 农产品类别  \\\n",
      "0              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
      "1              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
      "2              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
      "3              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
      "4              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
      "...           ...                               ...   ...   \n",
      "1869267        山东  DBC7E4EB1DF15BB374DB063F33DAD1D7    蔬菜   \n",
      "1869288        山东  DBC7E4EB1DF15BB374DB063F33DAD1D7    蔬菜   \n",
      "1945247        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
      "1945290        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
      "1945333        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
      "\n",
      "                                 农产品名称映射值  规格  区域   颜色     单位  最低交易价格  平均交易价格  \\\n",
      "0        9FABF2093EC485754BCCA2E513205297  \\N  \\N   红色  20支/扎    19.0    22.0   \n",
      "1        5E0CB63A28D060666E38F5417E1FC534  \\N  \\N   红色  20支/扎    18.0    22.0   \n",
      "2        FC7FE9E4A9E19A0DCA856E211B456728  \\N  \\N   粉色  20支/扎    16.0    19.0   \n",
      "3        C6D05CB73BA09902CCDC27C4B9D49A48  \\N  \\N  黑红色  20支/扎    16.0    18.0   \n",
      "4        427BAA73BD3D384FF704D4E13BF01EB5  \\N  \\N   粉色  20支/扎    20.0    24.0   \n",
      "...                                   ...  ..  ..  ...    ...     ...     ...   \n",
      "1869267  618BECB019CDD4FFC01EAA6C80179F3F  \\N  \\N   \\N     \\N    10.0    13.0   \n",
      "1869288  618BECB019CDD4FFC01EAA6C80179F3F  \\N  \\N   \\N     \\N    10.0    13.0   \n",
      "1945247  82E3E8AA8A835BE957F1461232457B46  \\N  \\N   \\N     \\N    10.0    14.0   \n",
      "1945290  82E3E8AA8A835BE957F1461232457B46  \\N  \\N   \\N     \\N    10.0    14.0   \n",
      "1945333  82E3E8AA8A835BE957F1461232457B46  \\N  \\N   \\N     \\N    10.0    14.0   \n",
      "\n",
      "         最高交易价格              数据入库时间     数据发布时间  \n",
      "0          24.0 2016-07-18 15:05:19 2015-11-27  \n",
      "1          24.0 2016-07-18 15:05:19 2015-11-27  \n",
      "2          22.0 2016-07-18 15:05:19 2015-11-27  \n",
      "3          20.0 2016-07-18 15:05:19 2015-11-27  \n",
      "4          26.0 2016-07-18 15:05:19 2015-11-27  \n",
      "...         ...                 ...        ...  \n",
      "1869267    14.4 2016-07-18 15:34:18 2014-04-27  \n",
      "1869288    14.4 2016-07-18 15:34:18 2014-04-25  \n",
      "1945247    16.0 2016-07-18 15:34:18 2012-06-10  \n",
      "1945290    16.0 2016-07-18 15:34:18 2012-06-08  \n",
      "1945333    16.0 2016-07-18 15:34:18 2012-06-07  \n",
      "\n",
      "[245215 rows x 13 columns]\n",
      "IQR准则检测出的异常值比例为:\n",
      " 0.12562675050834224\n",
      "清理后的数据框:\n",
      "        农产品市场所在省份                           市场名称映射值 农产品类别  \\\n",
      "0              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
      "1              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
      "2              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
      "3              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
      "4              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
      "...           ...                               ...   ...   \n",
      "1706713        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
      "1706714        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
      "1706715        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
      "1706716        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
      "1706717        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
      "\n",
      "                                 农产品名称映射值  规格  区域  颜色     单位  最低交易价格  平均交易价格  \\\n",
      "0        534C650F1725506DA76EC255755177F2  \\N  \\N  黄色  10支/扎     8.0    11.0   \n",
      "1        699BCDE7CDDF38710BD29469B43D46A5  \\N  \\N  各色  20支/扎     7.0     8.0   \n",
      "2        4CD002EE95094A64815311C5A77D42B8  \\N  \\N  红色  20支/扎     8.0     9.0   \n",
      "3        4A39486762EA71A63B59FF60143B177F  \\N  \\N  粉色  20支/扎     6.0     7.0   \n",
      "4        C22BB83DD87BB6CE53DE87918DAE2AE0  \\N  \\N  绿色  20支/扎     7.0     8.0   \n",
      "...                                   ...  ..  ..  ..    ...     ...     ...   \n",
      "1706713  3E0E45ECDD52843D41C487FBB7BEF094  \\N  \\N  \\N     \\N     1.0     1.0   \n",
      "1706714  552CD2C91A20DA48CD8FE41F7F02AFE3  \\N  \\N  \\N     \\N     3.0     3.0   \n",
      "1706715  1C5F3F6AE7E0232791D9170A8125DD4D  \\N  \\N  \\N     \\N     4.0     4.0   \n",
      "1706716  B6BEB81F246F19A5F0CF483DDD008DD2  \\N  \\N  \\N     \\N     3.6     3.6   \n",
      "1706717  74C9227D95C45856683C457BBCD04D90  \\N  \\N  \\N     \\N     2.2     2.2   \n",
      "\n",
      "         最高交易价格              数据入库时间     数据发布时间  \n",
      "0          13.0 2016-07-18 15:05:19 2015-11-27  \n",
      "1           9.0 2016-07-18 15:05:19 2015-11-27  \n",
      "2          10.0 2016-07-18 15:05:19 2015-11-27  \n",
      "3           9.0 2016-07-18 15:05:19 2015-11-27  \n",
      "4           9.0 2016-07-18 15:05:19 2015-11-27  \n",
      "...         ...                 ...        ...  \n",
      "1706713     1.0 2016-07-18 15:34:18 2010-12-01  \n",
      "1706714     3.0 2016-07-18 15:34:18 2010-12-01  \n",
      "1706715     4.0 2016-07-18 15:34:18 2010-12-01  \n",
      "1706716     3.6 2016-07-18 15:34:18 2010-12-01  \n",
      "1706717     2.2 2016-07-18 15:34:18 2010-12-01  \n",
      "\n",
      "[1706718 rows x 13 columns]\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "columns = ['最低交易价格', '平均交易价格', '最高交易价格']\n",
    "\n",
    "# 定义一个函数来检测异常值\n",
    "def detect_and_remove_outliers(df, columns):\n",
    "    outliers = pd.DataFrame()\n",
    "    for column in columns:\n",
    "        # 计算四分位数\n",
    "        Q1 = df[column].quantile(0.25)\n",
    "        Q3 = df[column].quantile(0.75)\n",
    "        IQR = Q3 - Q1  # 四分位距\n",
    "        # 定义异常值的阈值\n",
    "        lower_bound = Q1 - 1.5 * IQR\n",
    "        upper_bound = Q3 + 1.5 * IQR\n",
    "\n",
    "        # 筛选出异常值\n",
    "        outlier_indices = df[(df[column] < lower_bound) | (df[column] > upper_bound)].index\n",
    "        # 将异常值行添加到结果数据框中\n",
    "        if not outliers.empty:\n",
    "            outliers = outliers.append(df.loc[outlier_indices])\n",
    "        else:\n",
    "            outliers = df.loc[outlier_indices]\n",
    "\n",
    "    # 去除重复的行（如果有的话）\n",
    "    outliers = outliers.drop_duplicates()\n",
    "\n",
    "    # 删除异常值并返回处理后的原表df\n",
    "    df_cleaned = df.drop(index=outliers.index).reset_index(drop=True)\n",
    "    return df_cleaned, outliers\n",
    "\n",
    "# 检测并删除异常值，同时返回处理后的df和异常值\n",
    "df_cleaned, outliers = detect_and_remove_outliers(df, columns)\n",
    "print(\"异常值行数据:\")\n",
    "print(outliers)\n",
    "print('IQR准则检测出的异常值比例为:\\n', len(outliers)/len(df))\n",
    "\n",
    "# 打印清理后的数据框以验证\n",
    "print(\"清理后的数据框:\")\n",
    "print(df_cleaned)\n",
    "df=df_cleaned "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "a62e1d0b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>农产品市场所在省份</th>\n",
       "      <th>市场名称映射值</th>\n",
       "      <th>农产品类别</th>\n",
       "      <th>农产品名称映射值</th>\n",
       "      <th>规格</th>\n",
       "      <th>区域</th>\n",
       "      <th>颜色</th>\n",
       "      <th>单位</th>\n",
       "      <th>最低交易价格</th>\n",
       "      <th>平均交易价格</th>\n",
       "      <th>最高交易价格</th>\n",
       "      <th>数据入库时间</th>\n",
       "      <th>数据发布时间</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>玫瑰花</td>\n",
       "      <td>534C650F1725506DA76EC255755177F2</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>黄色</td>\n",
       "      <td>10支/扎</td>\n",
       "      <td>8.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>康乃馨</td>\n",
       "      <td>699BCDE7CDDF38710BD29469B43D46A5</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>各色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>7.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>康乃馨</td>\n",
       "      <td>4CD002EE95094A64815311C5A77D42B8</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>红色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>康乃馨</td>\n",
       "      <td>4A39486762EA71A63B59FF60143B177F</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>粉色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>6.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>康乃馨</td>\n",
       "      <td>C22BB83DD87BB6CE53DE87918DAE2AE0</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>绿色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>7.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1706713</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>3E0E45ECDD52843D41C487FBB7BEF094</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1706714</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>552CD2C91A20DA48CD8FE41F7F02AFE3</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1706715</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>1C5F3F6AE7E0232791D9170A8125DD4D</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1706716</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>B6BEB81F246F19A5F0CF483DDD008DD2</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1706717</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>74C9227D95C45856683C457BBCD04D90</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1706718 rows × 13 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        农产品市场所在省份                           市场名称映射值 农产品类别  \\\n",
       "0              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
       "1              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
       "2              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
       "3              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
       "4              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
       "...           ...                               ...   ...   \n",
       "1706713        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "1706714        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "1706715        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "1706716        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "1706717        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "\n",
       "                                 农产品名称映射值  规格  区域  颜色     单位  最低交易价格  平均交易价格  \\\n",
       "0        534C650F1725506DA76EC255755177F2  \\N  \\N  黄色  10支/扎     8.0    11.0   \n",
       "1        699BCDE7CDDF38710BD29469B43D46A5  \\N  \\N  各色  20支/扎     7.0     8.0   \n",
       "2        4CD002EE95094A64815311C5A77D42B8  \\N  \\N  红色  20支/扎     8.0     9.0   \n",
       "3        4A39486762EA71A63B59FF60143B177F  \\N  \\N  粉色  20支/扎     6.0     7.0   \n",
       "4        C22BB83DD87BB6CE53DE87918DAE2AE0  \\N  \\N  绿色  20支/扎     7.0     8.0   \n",
       "...                                   ...  ..  ..  ..    ...     ...     ...   \n",
       "1706713  3E0E45ECDD52843D41C487FBB7BEF094  \\N  \\N  \\N     \\N     1.0     1.0   \n",
       "1706714  552CD2C91A20DA48CD8FE41F7F02AFE3  \\N  \\N  \\N     \\N     3.0     3.0   \n",
       "1706715  1C5F3F6AE7E0232791D9170A8125DD4D  \\N  \\N  \\N     \\N     4.0     4.0   \n",
       "1706716  B6BEB81F246F19A5F0CF483DDD008DD2  \\N  \\N  \\N     \\N     3.6     3.6   \n",
       "1706717  74C9227D95C45856683C457BBCD04D90  \\N  \\N  \\N     \\N     2.2     2.2   \n",
       "\n",
       "         最高交易价格              数据入库时间     数据发布时间  \n",
       "0          13.0 2016-07-18 15:05:19 2015-11-27  \n",
       "1           9.0 2016-07-18 15:05:19 2015-11-27  \n",
       "2          10.0 2016-07-18 15:05:19 2015-11-27  \n",
       "3           9.0 2016-07-18 15:05:19 2015-11-27  \n",
       "4           9.0 2016-07-18 15:05:19 2015-11-27  \n",
       "...         ...                 ...        ...  \n",
       "1706713     1.0 2016-07-18 15:34:18 2010-12-01  \n",
       "1706714     3.0 2016-07-18 15:34:18 2010-12-01  \n",
       "1706715     4.0 2016-07-18 15:34:18 2010-12-01  \n",
       "1706716     3.6 2016-07-18 15:34:18 2010-12-01  \n",
       "1706717     2.2 2016-07-18 15:34:18 2010-12-01  \n",
       "\n",
       "[1706718 rows x 13 columns]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=df_cleaned \n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "42798856",
   "metadata": {},
   "outputs": [],
   "source": [
    "df=df.loc[df['最高交易价格']>0,:]\n",
    "df=df.loc[df['平均交易价格']>0,:]\n",
    "df=df.loc[df['最低交易价格']>0,:]\n",
    "df=df.reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "bfa8e499",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>农产品市场所在省份</th>\n",
       "      <th>市场名称映射值</th>\n",
       "      <th>农产品类别</th>\n",
       "      <th>农产品名称映射值</th>\n",
       "      <th>规格</th>\n",
       "      <th>区域</th>\n",
       "      <th>颜色</th>\n",
       "      <th>单位</th>\n",
       "      <th>最低交易价格</th>\n",
       "      <th>平均交易价格</th>\n",
       "      <th>最高交易价格</th>\n",
       "      <th>数据入库时间</th>\n",
       "      <th>数据发布时间</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>玫瑰花</td>\n",
       "      <td>534C650F1725506DA76EC255755177F2</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>黄色</td>\n",
       "      <td>10支/扎</td>\n",
       "      <td>8.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>康乃馨</td>\n",
       "      <td>699BCDE7CDDF38710BD29469B43D46A5</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>各色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>7.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>康乃馨</td>\n",
       "      <td>4CD002EE95094A64815311C5A77D42B8</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>红色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>康乃馨</td>\n",
       "      <td>4A39486762EA71A63B59FF60143B177F</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>粉色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>6.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>云南</td>\n",
       "      <td>F84FFE619392149018384D16BE6FF525</td>\n",
       "      <td>康乃馨</td>\n",
       "      <td>C22BB83DD87BB6CE53DE87918DAE2AE0</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>绿色</td>\n",
       "      <td>20支/扎</td>\n",
       "      <td>7.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016-07-18 15:05:19</td>\n",
       "      <td>2015-11-27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310755</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>3E0E45ECDD52843D41C487FBB7BEF094</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310756</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>552CD2C91A20DA48CD8FE41F7F02AFE3</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310757</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>1C5F3F6AE7E0232791D9170A8125DD4D</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310758</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>B6BEB81F246F19A5F0CF483DDD008DD2</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310759</th>\n",
       "      <td>湖南</td>\n",
       "      <td>53740BC1D5041A8ED06E3DBBA320A907</td>\n",
       "      <td>蔬菜</td>\n",
       "      <td>74C9227D95C45856683C457BBCD04D90</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>\\N</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2016-07-18 15:34:18</td>\n",
       "      <td>2010-12-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1310760 rows × 13 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        农产品市场所在省份                           市场名称映射值 农产品类别  \\\n",
       "0              云南  F84FFE619392149018384D16BE6FF525   玫瑰花   \n",
       "1              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
       "2              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
       "3              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
       "4              云南  F84FFE619392149018384D16BE6FF525   康乃馨   \n",
       "...           ...                               ...   ...   \n",
       "1310755        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "1310756        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "1310757        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "1310758        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "1310759        湖南  53740BC1D5041A8ED06E3DBBA320A907    蔬菜   \n",
       "\n",
       "                                 农产品名称映射值  规格  区域  颜色     单位  最低交易价格  平均交易价格  \\\n",
       "0        534C650F1725506DA76EC255755177F2  \\N  \\N  黄色  10支/扎     8.0    11.0   \n",
       "1        699BCDE7CDDF38710BD29469B43D46A5  \\N  \\N  各色  20支/扎     7.0     8.0   \n",
       "2        4CD002EE95094A64815311C5A77D42B8  \\N  \\N  红色  20支/扎     8.0     9.0   \n",
       "3        4A39486762EA71A63B59FF60143B177F  \\N  \\N  粉色  20支/扎     6.0     7.0   \n",
       "4        C22BB83DD87BB6CE53DE87918DAE2AE0  \\N  \\N  绿色  20支/扎     7.0     8.0   \n",
       "...                                   ...  ..  ..  ..    ...     ...     ...   \n",
       "1310755  3E0E45ECDD52843D41C487FBB7BEF094  \\N  \\N  \\N     \\N     1.0     1.0   \n",
       "1310756  552CD2C91A20DA48CD8FE41F7F02AFE3  \\N  \\N  \\N     \\N     3.0     3.0   \n",
       "1310757  1C5F3F6AE7E0232791D9170A8125DD4D  \\N  \\N  \\N     \\N     4.0     4.0   \n",
       "1310758  B6BEB81F246F19A5F0CF483DDD008DD2  \\N  \\N  \\N     \\N     3.6     3.6   \n",
       "1310759  74C9227D95C45856683C457BBCD04D90  \\N  \\N  \\N     \\N     2.2     2.2   \n",
       "\n",
       "         最高交易价格              数据入库时间     数据发布时间  \n",
       "0          13.0 2016-07-18 15:05:19 2015-11-27  \n",
       "1           9.0 2016-07-18 15:05:19 2015-11-27  \n",
       "2          10.0 2016-07-18 15:05:19 2015-11-27  \n",
       "3           9.0 2016-07-18 15:05:19 2015-11-27  \n",
       "4           9.0 2016-07-18 15:05:19 2015-11-27  \n",
       "...         ...                 ...        ...  \n",
       "1310755     1.0 2016-07-18 15:34:18 2010-12-01  \n",
       "1310756     3.0 2016-07-18 15:34:18 2010-12-01  \n",
       "1310757     4.0 2016-07-18 15:34:18 2010-12-01  \n",
       "1310758     3.6 2016-07-18 15:34:18 2010-12-01  \n",
       "1310759     2.2 2016-07-18 15:34:18 2010-12-01  \n",
       "\n",
       "[1310760 rows x 13 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "dcdbce4d",
   "metadata": {},
   "outputs": [],
   "source": [
    "df1 = df.copy()\n",
    "df2 = df.copy()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7bd78ed",
   "metadata": {},
   "source": [
    "#### 对所在省份进行区域划分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "7eeb8a42",
   "metadata": {},
   "outputs": [],
   "source": [
    "region_code_mapping = {  \n",
    "    '北京': 1, '天津': 1, '河北': 1, '辽宁': 1, '上海': 1, '江苏': 1, '浙江': 1, '福建': 1, '山东': 1, '广东': 1,  # 东部  \n",
    "    '山西': 2, '吉林': 2, '黑龙江': 2, '安徽': 2, '江西': 2, '河南': 2, '湖北': 2, '湖南': 2,  # 中部  \n",
    "    '内蒙古': 3, '广西': 3, '重庆': 3, '四川': 3, '贵州': 3, '云南': 3, '西藏': 3, '陕西': 3, '甘肃': 3, '青海': 3, '宁夏': 3, '新疆': 3  # 西部  \n",
    "}  \n",
    "  \n",
    "df1['区域'] = df1['农产品市场所在省份'].map(region_code_mapping)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a824325",
   "metadata": {},
   "source": [
    "### 独热编码-’农产品市场所在省份', '农产品类别'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "be3a0906",
   "metadata": {},
   "outputs": [],
   "source": [
    "one_hot_encoded_df = pd.get_dummies(df1[['农产品市场所在省份', '农产品类别']])  \n",
    "  # 使用 pd.merge 将独热编码后的 DataFrame 与 df1 合并，基于索引  \n",
    "df1 = pd.merge(one_hot_encoded_df, df1, left_index=True, right_index=True)  \n",
    "df1 = df1.drop(['农产品市场所在省份', '农产品类别'], axis=1)  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b6f02c2",
   "metadata": {},
   "source": [
    "### 标签编码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "7aae7e80",
   "metadata": {},
   "outputs": [],
   "source": [
    "#市场名称映射值\n",
    "import pandas as pd  \n",
    "from sklearn.preprocessing import LabelEncoder  \n",
    "\n",
    "# 初始化一个 LabelEncoder  \n",
    "label_encoder = LabelEncoder()  \n",
    "   \n",
    "unique_colors = df1['市场名称映射值'].unique()  \n",
    "color_to_index = dict(zip(unique_colors, label_encoder.fit_transform(unique_colors)))  \n",
    "index_to_color = dict(zip(label_encoder.transform(unique_colors), unique_colors))  \n",
    "  \n",
    "# 返回原列，并填充编码  \n",
    "df1['市场名称映射值'] = df1['市场名称映射值'].map(color_to_index) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "2f8b901b",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "#农产品名称映射值\n",
    "import pandas as pd  \n",
    "from sklearn.preprocessing import LabelEncoder  \n",
    "\n",
    "# 初始化一个 LabelEncoder  \n",
    "label_encoder = LabelEncoder()  \n",
    "  \n",
    "unique_colors = df1['农产品名称映射值'].unique()  \n",
    "color_to_index = dict(zip(unique_colors, label_encoder.fit_transform(unique_colors)))  \n",
    "index_to_color = dict(zip(label_encoder.transform(unique_colors), unique_colors))  \n",
    "  \n",
    "# 返回原列，并填充编码  \n",
    "df1['农产品名称映射值'] = df1['农产品名称映射值'].map(color_to_index) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "468b1978",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd  \n",
    "from sklearn.preprocessing import LabelEncoder  \n",
    "\n",
    "# 初始化一个 LabelEncoder  \n",
    "label_encoder = LabelEncoder()  \n",
    "  \n",
    "unique_colors = df1['单位'].unique()  \n",
    "color_to_index = dict(zip(unique_colors, label_encoder.fit_transform(unique_colors)))  \n",
    "index_to_color = dict(zip(label_encoder.transform(unique_colors), unique_colors))  \n",
    "  \n",
    "# 返回原列，并填充编码  \n",
    "df1['单位'] = df1['单位'].map(color_to_index) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "66ac20a8",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd  \n",
    "from sklearn.preprocessing import LabelEncoder  \n",
    "\n",
    "# 初始化一个 LabelEncoder  \n",
    "label_encoder = LabelEncoder()  \n",
    "  \n",
    "# 直接对 '颜色' 列中的所有唯一值进行编码，包括 '\\\\N'  \n",
    "unique_colors = df1['颜色'].unique()  \n",
    "color_to_index = dict(zip(unique_colors, label_encoder.fit_transform(unique_colors)))  \n",
    "index_to_color = dict(zip(label_encoder.transform(unique_colors), unique_colors))  \n",
    "  \n",
    "# 返回原列，并填充编码  \n",
    "df1['颜色'] = df1['颜色'].map(color_to_index) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "1b6d97c0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd  \n",
    "from sklearn.preprocessing import LabelEncoder  \n",
    "\n",
    "# 初始化一个 LabelEncoder  \n",
    "label_encoder = LabelEncoder()  \n",
    "  \n",
    "# 直接对 '颜色' 列中的所有唯一值进行编码，包括 '\\\\N'  \n",
    "unique_colors = df1['规格'].unique()  \n",
    "color_to_index = dict(zip(unique_colors, label_encoder.fit_transform(unique_colors)))  \n",
    "index_to_color = dict(zip(label_encoder.transform(unique_colors), unique_colors))  \n",
    "  \n",
    "# 返回原列，并填充编码  \n",
    "df1['规格'] = df1['规格'].map(color_to_index) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "e5001915",
   "metadata": {},
   "outputs": [],
   "source": [
    "#对日期进行处理\n",
    "df1['数据入库年份']= df1['数据入库时间'].dt.year\n",
    "df1['数据入库月份']= df1['数据入库时间'].dt.month\n",
    "df1['数据入库日份']= df1['数据入库时间'].dt.day\n",
    "df1['数据发布年份']= df1['数据发布时间'].dt.year\n",
    "df1['数据发布月份']= df1['数据发布时间'].dt.month\n",
    "df1['数据发布日份']= df1['数据发布时间'].dt.day\n",
    "df1 = df1.drop(['数据入库时间','数据发布时间'],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "c9a83ee5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>农产品市场所在省份_上海</th>\n",
       "      <th>农产品市场所在省份_云南</th>\n",
       "      <th>农产品市场所在省份_内蒙古</th>\n",
       "      <th>农产品市场所在省份_北京</th>\n",
       "      <th>农产品市场所在省份_四川</th>\n",
       "      <th>农产品市场所在省份_天津</th>\n",
       "      <th>农产品市场所在省份_安徽</th>\n",
       "      <th>农产品市场所在省份_山东</th>\n",
       "      <th>农产品市场所在省份_新疆</th>\n",
       "      <th>农产品市场所在省份_江苏</th>\n",
       "      <th>...</th>\n",
       "      <th>单位</th>\n",
       "      <th>最低交易价格</th>\n",
       "      <th>平均交易价格</th>\n",
       "      <th>最高交易价格</th>\n",
       "      <th>数据入库年份</th>\n",
       "      <th>数据入库月份</th>\n",
       "      <th>数据入库日份</th>\n",
       "      <th>数据发布年份</th>\n",
       "      <th>数据发布月份</th>\n",
       "      <th>数据发布日份</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>7.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>6.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>7.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310755</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310756</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310757</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310758</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310759</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1310760 rows × 50 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         农产品市场所在省份_上海  农产品市场所在省份_云南  农产品市场所在省份_内蒙古  农产品市场所在省份_北京  \\\n",
       "0                   0             1              0             0   \n",
       "1                   0             1              0             0   \n",
       "2                   0             1              0             0   \n",
       "3                   0             1              0             0   \n",
       "4                   0             1              0             0   \n",
       "...               ...           ...            ...           ...   \n",
       "1310755             0             0              0             0   \n",
       "1310756             0             0              0             0   \n",
       "1310757             0             0              0             0   \n",
       "1310758             0             0              0             0   \n",
       "1310759             0             0              0             0   \n",
       "\n",
       "         农产品市场所在省份_四川  农产品市场所在省份_天津  农产品市场所在省份_安徽  农产品市场所在省份_山东  农产品市场所在省份_新疆  \\\n",
       "0                   0             0             0             0             0   \n",
       "1                   0             0             0             0             0   \n",
       "2                   0             0             0             0             0   \n",
       "3                   0             0             0             0             0   \n",
       "4                   0             0             0             0             0   \n",
       "...               ...           ...           ...           ...           ...   \n",
       "1310755             0             0             0             0             0   \n",
       "1310756             0             0             0             0             0   \n",
       "1310757             0             0             0             0             0   \n",
       "1310758             0             0             0             0             0   \n",
       "1310759             0             0             0             0             0   \n",
       "\n",
       "         农产品市场所在省份_江苏  ...  单位  最低交易价格  平均交易价格  最高交易价格  数据入库年份  数据入库月份  \\\n",
       "0                   0  ...   0     8.0    11.0    13.0    2016       7   \n",
       "1                   0  ...   5     7.0     8.0     9.0    2016       7   \n",
       "2                   0  ...   5     8.0     9.0    10.0    2016       7   \n",
       "3                   0  ...   5     6.0     7.0     9.0    2016       7   \n",
       "4                   0  ...   5     7.0     8.0     9.0    2016       7   \n",
       "...               ...  ...  ..     ...     ...     ...     ...     ...   \n",
       "1310755             0  ...  12     1.0     1.0     1.0    2016       7   \n",
       "1310756             0  ...  12     3.0     3.0     3.0    2016       7   \n",
       "1310757             0  ...  12     4.0     4.0     4.0    2016       7   \n",
       "1310758             0  ...  12     3.6     3.6     3.6    2016       7   \n",
       "1310759             0  ...  12     2.2     2.2     2.2    2016       7   \n",
       "\n",
       "         数据入库日份  数据发布年份  数据发布月份  数据发布日份  \n",
       "0            18    2015      11      27  \n",
       "1            18    2015      11      27  \n",
       "2            18    2015      11      27  \n",
       "3            18    2015      11      27  \n",
       "4            18    2015      11      27  \n",
       "...         ...     ...     ...     ...  \n",
       "1310755      18    2010      12       1  \n",
       "1310756      18    2010      12       1  \n",
       "1310757      18    2010      12       1  \n",
       "1310758      18    2010      12       1  \n",
       "1310759      18    2010      12       1  \n",
       "\n",
       "[1310760 rows x 50 columns]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "cf57c37f",
   "metadata": {},
   "outputs": [],
   "source": [
    "columns_to_move = ['最高交易价格', '平均交易价格', '最低交易价格'] \n",
    "remaining_columns = [col for col in df1.columns if col not in columns_to_move] + columns_to_move  \n",
    "  \n",
    "# 重新排序 DataFrame 的列  \n",
    "df1 = df1[remaining_columns]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "06ae68cd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>农产品市场所在省份_上海</th>\n",
       "      <th>农产品市场所在省份_云南</th>\n",
       "      <th>农产品市场所在省份_内蒙古</th>\n",
       "      <th>农产品市场所在省份_北京</th>\n",
       "      <th>农产品市场所在省份_四川</th>\n",
       "      <th>农产品市场所在省份_天津</th>\n",
       "      <th>农产品市场所在省份_安徽</th>\n",
       "      <th>农产品市场所在省份_山东</th>\n",
       "      <th>农产品市场所在省份_新疆</th>\n",
       "      <th>农产品市场所在省份_江苏</th>\n",
       "      <th>...</th>\n",
       "      <th>单位</th>\n",
       "      <th>数据入库年份</th>\n",
       "      <th>数据入库月份</th>\n",
       "      <th>数据入库日份</th>\n",
       "      <th>数据发布年份</th>\n",
       "      <th>数据发布月份</th>\n",
       "      <th>数据发布日份</th>\n",
       "      <th>最高交易价格</th>\n",
       "      <th>平均交易价格</th>\n",
       "      <th>最低交易价格</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "      <td>13.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "      <td>9.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "      <td>10.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "      <td>9.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2015</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "      <td>9.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310755</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310756</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310757</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310758</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>3.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1310759</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>2016</td>\n",
       "      <td>7</td>\n",
       "      <td>18</td>\n",
       "      <td>2010</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "      <td>2.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1310760 rows × 50 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         农产品市场所在省份_上海  农产品市场所在省份_云南  农产品市场所在省份_内蒙古  农产品市场所在省份_北京  \\\n",
       "0                   0             1              0             0   \n",
       "1                   0             1              0             0   \n",
       "2                   0             1              0             0   \n",
       "3                   0             1              0             0   \n",
       "4                   0             1              0             0   \n",
       "...               ...           ...            ...           ...   \n",
       "1310755             0             0              0             0   \n",
       "1310756             0             0              0             0   \n",
       "1310757             0             0              0             0   \n",
       "1310758             0             0              0             0   \n",
       "1310759             0             0              0             0   \n",
       "\n",
       "         农产品市场所在省份_四川  农产品市场所在省份_天津  农产品市场所在省份_安徽  农产品市场所在省份_山东  农产品市场所在省份_新疆  \\\n",
       "0                   0             0             0             0             0   \n",
       "1                   0             0             0             0             0   \n",
       "2                   0             0             0             0             0   \n",
       "3                   0             0             0             0             0   \n",
       "4                   0             0             0             0             0   \n",
       "...               ...           ...           ...           ...           ...   \n",
       "1310755             0             0             0             0             0   \n",
       "1310756             0             0             0             0             0   \n",
       "1310757             0             0             0             0             0   \n",
       "1310758             0             0             0             0             0   \n",
       "1310759             0             0             0             0             0   \n",
       "\n",
       "         农产品市场所在省份_江苏  ...  单位  数据入库年份  数据入库月份  数据入库日份  数据发布年份  数据发布月份  \\\n",
       "0                   0  ...   0    2016       7      18    2015      11   \n",
       "1                   0  ...   5    2016       7      18    2015      11   \n",
       "2                   0  ...   5    2016       7      18    2015      11   \n",
       "3                   0  ...   5    2016       7      18    2015      11   \n",
       "4                   0  ...   5    2016       7      18    2015      11   \n",
       "...               ...  ...  ..     ...     ...     ...     ...     ...   \n",
       "1310755             0  ...  12    2016       7      18    2010      12   \n",
       "1310756             0  ...  12    2016       7      18    2010      12   \n",
       "1310757             0  ...  12    2016       7      18    2010      12   \n",
       "1310758             0  ...  12    2016       7      18    2010      12   \n",
       "1310759             0  ...  12    2016       7      18    2010      12   \n",
       "\n",
       "         数据发布日份  最高交易价格  平均交易价格  最低交易价格  \n",
       "0            27    13.0    11.0     8.0  \n",
       "1            27     9.0     8.0     7.0  \n",
       "2            27    10.0     9.0     8.0  \n",
       "3            27     9.0     7.0     6.0  \n",
       "4            27     9.0     8.0     7.0  \n",
       "...         ...     ...     ...     ...  \n",
       "1310755       1     1.0     1.0     1.0  \n",
       "1310756       1     3.0     3.0     3.0  \n",
       "1310757       1     4.0     4.0     4.0  \n",
       "1310758       1     3.6     3.6     3.6  \n",
       "1310759       1     2.2     2.2     2.2  \n",
       "\n",
       "[1310760 rows x 50 columns]"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe7d1e4c",
   "metadata": {},
   "source": [
    "## 对数据集product_market进行处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "1ee6e13e",
   "metadata": {},
   "outputs": [],
   "source": [
    "df2=pd.read_csv('product_market.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "aef4080a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 36661 entries, 0 to 36660\n",
      "Data columns (total 11 columns):\n",
      " #   Column      Non-Null Count  Dtype  \n",
      "---  ------      --------------  -----  \n",
      " 0   Unnamed: 0  36661 non-null  int64  \n",
      " 1   农产品市场所在省份   36661 non-null  object \n",
      " 2   市场名称映射值     36661 non-null  object \n",
      " 3   农产品类别       36661 non-null  object \n",
      " 4   农产品名称映射值    36661 non-null  object \n",
      " 5   规格          0 non-null      float64\n",
      " 6   区域          36661 non-null  int64  \n",
      " 7   颜色          0 non-null      float64\n",
      " 8   单位          0 non-null      float64\n",
      " 9   数据入库时间      36661 non-null  object \n",
      " 10  数据发布时间      36661 non-null  object \n",
      "dtypes: float64(3), int64(2), object(6)\n",
      "memory usage: 3.1+ MB\n"
     ]
    }
   ],
   "source": [
    "df2.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7c20ab39",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "f1b02acd",
   "metadata": {},
   "outputs": [],
   "source": [
    "region_code_mapping = {  \n",
    "    '北京': 1, '天津': 1, '河北': 1, '辽宁': 1, '上海': 1, '江苏': 1, '浙江': 1, '福建': 1, '山东': 1, '广东': 1,  # 东部  \n",
    "    '山西': 2, '吉林': 2, '黑龙江': 2, '安徽': 2, '江西': 2, '河南': 2, '湖北': 2, '湖南': 2,  # 中部  \n",
    "    '内蒙古': 3, '广西': 3, '重庆': 3, '四川': 3, '贵州': 3, '云南': 3, '西藏': 3, '陕西': 3, '甘肃': 3, '青海': 3, '宁夏': 3, '新疆': 3  # 西部  \n",
    "}  \n",
    "  \n",
    "df2['区域'] = df2['农产品市场所在省份'].map(region_code_mapping)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "d243e27a",
   "metadata": {},
   "outputs": [],
   "source": [
    "one_hot_encoded_df2 = pd.get_dummies(df2[['农产品市场所在省份', '农产品类别']])  \n",
    "  # 使用 pd.merge 将独热编码后的 DataFrame 与 df1 合并，基于索引  \n",
    "df2 = pd.merge(one_hot_encoded_df2, df2, left_index=True, right_index=True)  \n",
    "df2 = df2.drop(['农产品市场所在省份', '农产品类别'], axis=1)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "2dfda15d",
   "metadata": {},
   "outputs": [],
   "source": [
    "#市场名称映射值\n",
    "import pandas as pd  \n",
    "from sklearn.preprocessing import LabelEncoder  \n",
    "\n",
    "# 初始化一个 LabelEncoder  \n",
    "label_encoder = LabelEncoder()  \n",
    "   \n",
    "unique_colors = df2['市场名称映射值'].unique()  \n",
    "color_to_index = dict(zip(unique_colors, label_encoder.fit_transform(unique_colors)))  \n",
    "index_to_color = dict(zip(label_encoder.transform(unique_colors), unique_colors))  \n",
    "  \n",
    "# 返回原列，并填充编码  \n",
    "df2['市场名称映射值'] = df2['市场名称映射值'].map(color_to_index) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "8c400262",
   "metadata": {},
   "outputs": [],
   "source": [
    "#农产品名称映射值\n",
    "import pandas as pd  \n",
    "from sklearn.preprocessing import LabelEncoder  \n",
    "\n",
    "# 初始化一个 LabelEncoder  \n",
    "label_encoder = LabelEncoder()  \n",
    "  \n",
    "unique_colors = df2['农产品名称映射值'].unique()  \n",
    "color_to_index = dict(zip(unique_colors, label_encoder.fit_transform(unique_colors)))  \n",
    "index_to_color = dict(zip(label_encoder.transform(unique_colors), unique_colors))  \n",
    "  \n",
    "# 返回原列，并填充编码  \n",
    "df2['农产品名称映射值'] = df2['农产品名称映射值'].map(color_to_index) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "570faf52",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 转换日期列\n",
    "df2['数据入库时间'] = pd.to_datetime(df2['数据入库时间'], errors='coerce')\n",
    "df2['数据发布时间'] = pd.to_datetime(df2['数据发布时间'], errors='coerce')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "88d0eea2",
   "metadata": {},
   "outputs": [],
   "source": [
    "#对日期进行处理\n",
    "df2['数据入库年份']= df2['数据入库时间'].dt.year\n",
    "df2['数据入库月份']= df2['数据入库时间'].dt.month\n",
    "df2['数据入库日份']= df2['数据入库时间'].dt.day\n",
    "\n",
    "df2['数据发布年份']= df2['数据发布时间'].dt.year\n",
    "df2['数据发布月份']= df2['数据发布时间'].dt.month\n",
    "df2['数据发布日份']= df2['数据发布时间'].dt.day\n",
    "\n",
    "df2 = df2.drop(['数据入库时间','数据发布时间'],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "b73c6faf",
   "metadata": {},
   "outputs": [],
   "source": [
    "df2['规格'] = df2['规格'].fillna(1)\n",
    "df2['颜色'] = df2['颜色'].fillna(1)\n",
    "df2['单位'] = df2['单位'].fillna(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "a058d485",
   "metadata": {},
   "outputs": [],
   "source": [
    "df2['最高交易价格'] = 0\n",
    "df2['平均交易价格'] = 0\n",
    "df2['最低交易价格'] = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "8a9f6c08",
   "metadata": {},
   "outputs": [],
   "source": [
    "#导包\n",
    "from sklearn.model_selection import train_test_split  #切分数据集\n",
    "from sklearn.ensemble import RandomForestRegressor  #RFC\n",
    "from sklearn.metrics import mean_absolute_error, mean_squared_error\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn import metrics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "1cf2d27f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>农产品名称映射值</th>\n",
       "      <th>农产品市场所在省份_上海</th>\n",
       "      <th>农产品市场所在省份_云南</th>\n",
       "      <th>农产品市场所在省份_北京</th>\n",
       "      <th>农产品市场所在省份_广西</th>\n",
       "      <th>农产品市场所在省份_新疆</th>\n",
       "      <th>农产品市场所在省份_江苏</th>\n",
       "      <th>农产品市场所在省份_浙江</th>\n",
       "      <th>农产品市场所在省份_湖北</th>\n",
       "      <th>...</th>\n",
       "      <th>单位</th>\n",
       "      <th>市场名称映射值</th>\n",
       "      <th>数据入库年份</th>\n",
       "      <th>数据入库日份</th>\n",
       "      <th>数据入库月份</th>\n",
       "      <th>数据发布年份</th>\n",
       "      <th>数据发布日份</th>\n",
       "      <th>数据发布月份</th>\n",
       "      <th>规格</th>\n",
       "      <th>颜色</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>51</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>51</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>51</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>51</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>51</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36656</th>\n",
       "      <td>36656</td>\n",
       "      <td>546</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>25</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36657</th>\n",
       "      <td>36657</td>\n",
       "      <td>546</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>26</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36658</th>\n",
       "      <td>36658</td>\n",
       "      <td>546</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>27</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36659</th>\n",
       "      <td>36659</td>\n",
       "      <td>546</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>28</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36660</th>\n",
       "      <td>36660</td>\n",
       "      <td>546</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016</td>\n",
       "      <td>29</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>36661 rows × 36 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       Unnamed: 0  农产品名称映射值  农产品市场所在省份_上海  农产品市场所在省份_云南  农产品市场所在省份_北京  \\\n",
       "0               0        51             0             0             0   \n",
       "1               1        51             0             0             0   \n",
       "2               2        51             0             0             0   \n",
       "3               3        51             0             0             0   \n",
       "4               4        51             0             0             0   \n",
       "...           ...       ...           ...           ...           ...   \n",
       "36656       36656       546             0             1             0   \n",
       "36657       36657       546             0             1             0   \n",
       "36658       36658       546             0             1             0   \n",
       "36659       36659       546             0             1             0   \n",
       "36660       36660       546             0             1             0   \n",
       "\n",
       "       农产品市场所在省份_广西  农产品市场所在省份_新疆  农产品市场所在省份_江苏  农产品市场所在省份_浙江  农产品市场所在省份_湖北  \\\n",
       "0                 1             0             0             0             0   \n",
       "1                 1             0             0             0             0   \n",
       "2                 1             0             0             0             0   \n",
       "3                 1             0             0             0             0   \n",
       "4                 1             0             0             0             0   \n",
       "...             ...           ...           ...           ...           ...   \n",
       "36656             0             0             0             0             0   \n",
       "36657             0             0             0             0             0   \n",
       "36658             0             0             0             0             0   \n",
       "36659             0             0             0             0             0   \n",
       "36660             0             0             0             0             0   \n",
       "\n",
       "       ...   单位  市场名称映射值  数据入库年份  数据入库日份  数据入库月份  数据发布年份  数据发布日份  数据发布月份   规格  \\\n",
       "0      ...  1.0        3     NaN     NaN     NaN    2016       1       1  1.0   \n",
       "1      ...  1.0        3     NaN     NaN     NaN    2016       2       1  1.0   \n",
       "2      ...  1.0        3     NaN     NaN     NaN    2016       3       1  1.0   \n",
       "3      ...  1.0        3     NaN     NaN     NaN    2016       4       1  1.0   \n",
       "4      ...  1.0        3     NaN     NaN     NaN    2016       6       1  1.0   \n",
       "...    ...  ...      ...     ...     ...     ...     ...     ...     ...  ...   \n",
       "36656  ...  1.0        2     NaN     NaN     NaN    2016      25       1  1.0   \n",
       "36657  ...  1.0        2     NaN     NaN     NaN    2016      26       1  1.0   \n",
       "36658  ...  1.0        2     NaN     NaN     NaN    2016      27       1  1.0   \n",
       "36659  ...  1.0        2     NaN     NaN     NaN    2016      28       1  1.0   \n",
       "36660  ...  1.0        2     NaN     NaN     NaN    2016      29       1  1.0   \n",
       "\n",
       "        颜色  \n",
       "0      1.0  \n",
       "1      1.0  \n",
       "2      1.0  \n",
       "3      1.0  \n",
       "4      1.0  \n",
       "...    ...  \n",
       "36656  1.0  \n",
       "36657  1.0  \n",
       "36658  1.0  \n",
       "36659  1.0  \n",
       "36660  1.0  \n",
       "\n",
       "[36661 rows x 36 columns]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#数据准备\n",
    "X = df1[df1.columns.difference(['最高交易价格', '平均交易价格', '最低交易价格'])]\n",
    "Y = df1[['最高交易价格', '平均交易价格', '最低交易价格']]\n",
    "Z = df2[df2.columns.difference(['最高交易价格', '平均交易价格', '最低交易价格'])]\n",
    "Z"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "8a8f9c0e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#拆分数据集\n",
    "X_train, X_test, Y_train, Y_test = train_test_split(X,\n",
    "                                                    Y,\n",
    "                                                    test_size=0.3,\n",
    "                                                    random_state=536)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "60055f02",
   "metadata": {},
   "outputs": [],
   "source": [
    "rf = RandomForestRegressor(n_estimators=321, max_depth=25)  #建立模型\n",
    "rf.fit(X_train, Y_train)  #模型训练\n",
    "pred = rf.predict(X_test)  #拿训练完的模型对测试集进行预测\n",
    "score_f = rf.score(X_test, Y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8ed125e2",
   "metadata": {},
   "outputs": [],
   "source": [
    "#模型评估\n",
    "print('MSE', mean_squared_error(Y_test, pred))\n",
    "print('MAE', mean_absolute_error(Y_test, pred))\n",
    "print('Random Forest:{}'.format(score_f))\n",
    "#print(\"RF准确率为:{0:%}\".format(metrics.accuracy_score(ss, pred)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "811b5824",
   "metadata": {},
   "outputs": [],
   "source": [
    "#ss = Y_test.values\n",
    "pred1 = rf.predict(Z)\n",
    "#pred1\n",
    "print(pred1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c2be8f31",
   "metadata": {},
   "outputs": [],
   "source": [
    "df1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d8e4c1ba",
   "metadata": {},
   "outputs": [],
   "source": [
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d2105490",
   "metadata": {},
   "outputs": [],
   "source": [
    "Z"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cee48a3c",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
